在我正在構建的頁面上,需要顯示日期(例如:8月15日),或者如果日期是今天,則只需顯示時間,例如: 下午10點。moment.js - 顯示日期或時間
什麼是最好的方式來哄騙這種行爲out of moment.js?
我想要約會的格式是'd MMM',時間格式是'hA'(如果分鐘是0)或'h:mmA'(如果分鐘不是0)。
關於如何解決這個問題的任何想法?它看起來像calendar()函數可能能夠支持類似的東西?
在我正在構建的頁面上,需要顯示日期(例如:8月15日),或者如果日期是今天,則只需顯示時間,例如: 下午10點。moment.js - 顯示日期或時間
什麼是最好的方式來哄騙這種行爲out of moment.js?
我想要約會的格式是'd MMM',時間格式是'hA'(如果分鐘是0)或'h:mmA'(如果分鐘不是0)。
關於如何解決這個問題的任何想法?它看起來像calendar()函數可能能夠支持類似的東西?
你想用moment.calendar:設置一切,除了sameDay
到d MMMM和sameDay
到H:MMA。你不能做比這更細的糧食。
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);
}
謝謝!此外,謝謝你的時刻,這是真棒:D – captainpete 2012-08-13 13:13:54
謝謝,那也是我的結論! – Fatal 2012-04-24 04:14:41
呃,實際上,你可以做一個if語句來檢查日期是否使用了moment.diff(見http://momentjs.com/docs/#/displaying/difference/),如果它不使用'calendar ',否則使用你的* hA *格式。 – Femi 2012-04-24 04:17:50
那些小寫字母應該是大寫的D(否則它將顯示一週中的某一天而不是一個月)。 – 2014-02-02 21:39:06