如何使用MomentJS格式化我的日期

时间:2015-10-07 11:24:34

标签: javascript momentjs

我使用 moment.js 在应用中输出日期。

日期格式基于区域设置(clientLanguage variabile)。

我试过这个(以及许多其他事情):

moment(myISODate).locale(clientLanguage).format('ll');

但我需要的格式不同,我找不到以下列格式提供日期的方法:

WED 18 NOV 20:05WED 18 NOV

有什么办法可以随时做到吗?

[更新]我错过了一件非常重要的事情:应该尊重语言环境格式,所以如果格式日期是英语方式是WED OCT 19,意大利语应该是MER 19 OTT(19是另一个位置)

[更新]那个贬值的家伙显然没有解决方案

3 个答案:

答案 0 :(得分:4)

试试这个

moment(myISODate).locale(clientLanguage).format('ddd') + " " + moment(myISODate).locale(clientLanguage).format('DD MMM HH:mm')  

答案 1 :(得分:2)

您可以执行以下操作:

var locale = window.navigator.userLanguage || window.navigator.language;
moment.locale(locale);
console.log(locale); //en-US
var now = moment().format("ddd D MMM H:mm");
console.log(now); //Wed 7 Oct 15:06

moment.locale('it');
console.log('it'); //it
var now = moment().format("ddd D MMM H:mm");
console.log(now); //Mer 7 ott 15:06

Jsfiddle

有关以不同格式显示的详细信息,您可以看到他们的documentation

更新:更新了我的答案和jsfiddle。

您可以使用以下内容检查用户的浏览器区域设置:

var locale = window.navigator.userLanguage || window.navigator.language;

然后将moment.js设置为使用这样的语言环境:

moment.locale(locale);

问题是您必须包含所有时刻js locales 文件。 (moment-with-locales.min.js

更新2 : 是的,似乎没有办法自定义它,但是自己做它很简单。只需使用'LLLL'的区域设置(不是缩小的)搜索moment.js的源代码,您就会看到类似这样的内容:LLLL : 'dddd D MMMM YYYY HH:mm'每次都更改它具有所需输出的语言("ddd D MMM H:mm"),您应该设置。

答案 2 :(得分:2)

试试这个,

WED 18 NOV 20:05 - public class B { private const A.myEnum alias_1 = A.myEnum.value_1; private const A.myEnum alias_2 = A.myEnum.value_2; private A.myEnum[] tab = {alias_1, alias_2}; }

WED 18 NOV - moment(myISODate).locale(clientLanguage).format('ddd D MMM hh:mm');