我正在尝试生成欧盟日期,通常采用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
。似乎不尊重语言环境日期格式。
有人知道如何解决此问题吗?
答案 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”作为实际上是美国的语言