如何在javascript中获取星期日为一周的第一天的一周的周数,也是固定的年份数?
e.g。 2012-12-31
应与2013-01-01
具有相同的年份编号和周数。
我找到了一个片段来做这件事,但本周总是从星期一开始而不是星期天,如何解决?
exports.getYearAndWeek = function(d) {
// Copy date so don't modify original
d = new Date(d);
d.setHours(0,0,0);
// Set to nearest Thursday: current date + 4 - current day number
// Make Sunday's day number 7
d.setDate(d.getDate() + 4 - (d.getDay()||7));
// Get first day of year
var yearStart = new Date(d.getFullYear(),0,1);
// Calculate full weeks to nearest Thursday
var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7)
// Return array of year and week number
return [d.getFullYear(), weekNo];
}
答案 0 :(得分:0)
一年的第一周,从星期一开始的几个星期,就像你的代码所暗示的那样是星期四的第一周。
如果您的周从星期日开始,第一周将是包含星期三的第一周。
如果年份从周四到周六开始,则直到周日的日子将是上一年的最后一周。如果年份从星期一,星期二或星期三开始,那么上一年的最后一个星期日就是今年第一周的开始。