像我之前的许多人一样(特别是 here ),我尝试使用 moment.calendar 显示没有日期的相对时间。但是,我似乎无法找到适合我的答案。
var today = moment(new Date()).startOf('Day');
today.calendar();
// Displays Today at 12:00 AM
moment.updateLocale(null, {
calendar : {
lastDay : '[Yesterday]',
sameDay : '[Today] With just the date?',
nextDay : '[Tomorrow]',
lastWeek : 'll',
nextWeek : 'll',
sameElse : 'll'
}
});
today.calendar();
// Displays Today at 12:00 AM
我希望它显示“今天只有日期?”。
最佳答案
您可以使用updateLocale
传递 'en'
作为第一个参数(因为默认情况下,Moment.js 带有英语(美国)区域设置字符串)。此外,您必须创建一个新的时刻对象才能查看更新的日历字符串:
var today = moment(new Date()).startOf('Day');
console.log(today.calendar()); // Displays Today at 12:00 AM
moment.updateLocale('en', {
calendar : {
lastDay : '[Yesterday]',
sameDay : '[Today] [With just the date?]',
nextDay : '[Tomorrow]',
lastWeek : 'll',
nextWeek : 'll',
sameElse : 'll'
}
});
moment.updateLocale('fr', {
calendar : {
lastDay : '[Hier]',
sameDay : '[Aujourd’hui] L',
nextDay : '[Demain]',
lastWeek : 'll',
nextWeek : 'll',
sameElse : 'll'
}
});
var today2 = moment().startOf('day');
console.log(today2.locale('en').calendar());
console.log(today2.locale('fr').calendar());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment-with-locales.min.js"></script>
如果您想要当前日期,请使用 sameDay : '[Today] L'
,而不是字符串 "With just the date?"
。
关于javascript - 更新 Moment.js 日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50257370/