私が作成しているページでは、日付(例:8月15日)を表示するか、日付が今日の場合は時刻(例:午後10時)を表示する必要があります。
moment.jsからその振る舞いを引き出す最良の方法は何でしょうか?
日付の形式は「dMMM」で、時間の形式は「hA」(分が0の場合)または「h:mmA」(分が0でない場合)になります。
これにアプローチする方法について何かアイデアはありますか?calendar()関数がそのようなものをサポートできるように見えますか?
私が作成しているページでは、日付(例:8月15日)を表示するか、日付が今日の場合は時刻(例:午後10時)を表示する必要があります。
moment.jsからその振る舞いを引き出す最良の方法は何でしょうか?
日付の形式は「dMMM」で、時間の形式は「hA」(分が0の場合)または「h:mmA」(分が0でない場合)になります。
これにアプローチする方法について何かアイデアはありますか?calendar()関数がそのようなものをサポートできるように見えますか?
moment.calendarを使用したい:d MMMMsameDay
とh:mmA以外のすべてを設定します。それより細かい粒子を作ることはできません。sameDay
function timeTodayDateElse(date){
moment.lang('en', {
'calendar' : {
'lastDay' : 'D MMMM',
'sameDay' : 'h:mmA',
'nextDay' : 'D MMMM',
'lastWeek' : 'D MMMM',
'nextWeek' : 'D MMMM',
'sameElse' : 'D MMMM'
}
});
return moment(date).calendar();
}
これを自分で行うためのマイクロプラグインを作成できます。
moment.fn.formatTimeToday = function () {
var now = moment(),
format = "d MMM";
if (this.date() === now.date() &&
Math.abs(this.diff(now)) < 86400000) {
// same day of month and less than 24 hours difference
if (this.minutes() === 0) {
format = "hA";
} else {
format = "h:mmA";
}
}
return this.format(format);
}
クイックグーグル検索(moment.js相対時間)は、ドキュメントへのこのリンクを提供します。必要なフォーマット文字列でこれをカスタマイズできるはずです。