马上创建一个包含区域设置的日期

kid*_*tal 0 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'));
Run Code Online (Sandbox Code Playgroud)

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

我期待08/01/2018,但是我01/08/2018回来了.它似乎不尊重语言环境日期格式.

任何人都知道如何解决这个问题?

31p*_*piy 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'));
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment-with-locales.min.js"></script>
Run Code Online (Sandbox Code Playgroud)