【发布时间】:2014-05-24 08:14:07
【问题描述】:
我编写了两个简单的函数来使用 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。
我怀疑这与时区或类似的东西有关,但我对这些事情的工作原理几乎一无所知。有人能弄清楚吗?
【问题讨论】:
标签: javascript momentjs