2
我寫了兩個簡單的函數來玩弄Moment.js。帶Moment.js的簡單函數給出了意想不到的結果(?)
第一個函數返回一個星期作爲一個日期數組,給定該星期的一個任意一天。
var getWeek = function (day) {
var today = day.clone();
var monday = today.clone().startOf('isoWeek');
var sunday = today.clone().endOf('isoWeek');
var days = [];
for (var current = monday.clone(); current.isBefore(today, 'day');
current.add(1, 'days')) {
days.push(current.format());
}
days.push(today.format());
for (var current = today.clone().add(1, 'days');
current.isBefore(sunday, 'day') ||
(current.isSame(sunday, 'day') &&!today.isSame(sunday, 'day'));
current.add(1, 'days')) {
days.push(current.format());
}
return days;
};
第二個函數返回給定任意一天的一年中的星期數。
var dayofweek = function (day) {
return Math.ceil(moment(day).dayOfYear()/7);
};
然而,當我今天通過爲moment()
我得到正確的結果測試,15 當我通過傳遞getWeek(moment())[0]
(這是星期一),我得到14
我懷疑這與時區或類似的東西有關,但我幾乎不知道這些東西是如何工作的。有人能弄明白嗎?
我想通了,我也可以使用'.isoWeekday(號碼)'得到日的一週中,連同'.isoWeek()'。 Moment.js是一個偉大的圖書館,但文檔有點混亂。謝謝! – link