如何在oment.js中设置解析的区域设置?
遗憾的是,我在文档中找不到答案,因此...
例如,我输入的日期是:"09/01/2017"。我不知道,它是DD/MM/YYYY或MM/DD/YYYY,但我知道用户区域设置。我能买到下面这样的东西吗?
let date = "09/01/2017",
locale = "en_US",// or "en_AU"
result = moment(date, locale).format("DD MMM YYYY");
// 01 Sep 2017
// 09 Jan 2017
或者我是否需要写一张地图,然后将格式设置为Moment?
let map =
{
en_US: 'DD/MM/YYYY',
en_AU: 'MM/DD/YYYY',
// ...
},
date = "09/01/2017",
locale = "en_US",// or "en_AU"
result = moment(date, map[locale]).format("DD MMM YYYY");
// 01 Sep 2017
// 09 Jan 2017
谢谢
解决方案
您可以使用moment.localeData()
和longDateFormat('L')
获取区域设置特定的标记。
这里是一个活的样本:
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">let date = "09/01/2017";
let locale = "en_US";
let localeFormat = moment.localeData(locale).longDateFormat('L');
let result = moment(date, localeFormat).format("DD MMM YYYY");
console.log(result); // 01 Sep 2017
locale = "en_AU";
localeFormat = moment.localeData(locale).longDateFormat('L');
result = moment(date, localeFormat).format("DD MMM YYYY");
console.log(result); // 09 Jan 2017
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js"></script>
相关文章