我使用 moment.js 在应用中输出日期。
日期格式基于区域设置(clientLanguage
variabile)。
我试过这个(以及许多其他事情):
moment(myISODate).locale(clientLanguage).format('ll');
但我需要的格式不同,我找不到以下列格式提供日期的方法:
WED 18 NOV 20:05
和WED 18 NOV
有什么办法可以随时做到吗?
[更新]我错过了一件非常重要的事情:应该尊重语言环境格式,所以如果格式日期是英语方式是WED OCT 19,意大利语应该是MER 19 OTT(19是另一个位置)
[更新]那个贬值的家伙显然没有解决方案
答案 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
有关以不同格式显示的详细信息,您可以看到他们的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');