moment().calendar();
moment().calendar(referenceTime);
moment().calendar(referenceTime, formats); // 从 2.10.5 开始
日历时间显示相对于给定的 referenceTime
的时间(默认为现在),但与 moment#fromNow
略有不同。
moment#calendar
会根据日期与 referenceTime
的日期(默认为今天)的接近程度,使用不同的字符串格式化日期。
上个星期 | 上星期一 2:30 |
前一天 | 昨天 2:30 |
同一天 | 今天 2:30 |
下一天 | 明天 2:30 |
下个星期 | 星期日 2:30 |
其他 | 7/10/2011 |
这些字符串是本地化的,可以自定义。
从 2.10.5 开始,moment 支持指定每次调用的日历输出格式:
moment().calendar(null, {
sameDay: '[今天]',
nextDay: '[明天]',
nextWeek: 'dddd',
lastDay: '[昨天]',
lastWeek: '[上个] dddd',
sameElse: 'DD/MM/YYYY'
});
当 moment 与 referenceTime
相距超过一周时,则将 sameElse
用作格式。
注意:从 2.14.0 版本开始,日历的格式参数可以是一个在 moment 上下文中使用单个参数执行的回调:
moment().calendar(null, {
sameDay: function (now) {
if (this.isBefore(now)) {
return '[今天将会发生]';
} else {
return '[今天已发生]';
}
/* ... */
}
});
moment().calendar();
moment().calendar(referenceTime);
moment().calendar(referenceTime, formats); // from 2.10.5
Calendar time displays time relative to a given referenceTime
(defaults to now), but does so slightly differently than moment#fromNow
.
moment#calendar
will format a date with different strings depending on how close to referenceTime
's date (today by default) the date is.
Last week | Last Monday at 2:30 AM |
The day before | Yesterday at 2:30 AM |
The same day | Today at 2:30 AM |
The next day | Tomorrow at 2:30 AM |
The next week | Sunday at 2:30 AM |
Everything else | 7/10/2011 |
These strings are localized, and can be customized.
From 2.10.5 moment supports specifying calendar output formats per invocation:
moment().calendar(null, {
sameDay: '[Today]',
nextDay: '[Tomorrow]',
nextWeek: 'dddd',
lastDay: '[Yesterday]',
lastWeek: '[Last] dddd',
sameElse: 'DD/MM/YYYY'
});
sameElse
is used as the format when the moment is more than a week away from the referenceTime
Note: From version 2.14.0 the formats argument to calendar can be a callback that is executed within the moment context with a single argument now:
moment().calendar(null, {
sameDay: function (now) {
if (this.isBefore(now)) {
return '[Will Happen Today]';
} else {
return '[Happened Today]';
}
/* ... */
}
});