立即创建具有语言环境的日期

时间:2018-08-21 08:07:17

标签: javascript datetime momentjs

我正在尝试生成欧盟日期,通常采用DD/MM/YYYY格式。

// August 1st, 2018, EU format is DD/MM/YYYY
const myDate = moment('01/08/2018').locale('fr'); 
console.log(myDate.format('MM/DD/YYYY'));

尝试将此代码粘贴到momentjs.com控制台中,但它不起作用。

我希望有08/01/2018,但是我又得到了01/08/2018。似乎不尊重语言环境日期格式。

有人知道如何解决此问题吗?

2 个答案:

答案 0 :(得分:5)

在MomentJS网站上明确规定:

  

要获得一致的结果以解析ISO 8601字符串以外的任何内容,应使用String + Format

您需要传递格式,因为字符串不是ISO格式。

如果需要利用语言环境信息,请使用支持语言环境信息的脚本。然后,您可以先使用moment.locale来设置语言环境,然后使用L格式说明符(短日期)来根据语言环境的规范来解析日期。

请参见下面的演示

moment.locale('fr');

const myDate = moment('01/08/2018', 'L'); 
console.log(myDate.format('MM/DD/YYYY'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment-with-locales.min.js"></script>

答案 1 :(得分:1)

使用即时语言环境时,您将需要将所需的每种语言文件导入页面。它们通常位于/locale/fr.js中。

如果您需要加载许多语言文件,则可以链接到moment-with-locales.js,该文件在大多数CDN或Moment网站的下载中与moment.js一起提供。

默认情况下,Moment附带“ en”作为实际上是美国的语言