如何在javascript中获得星期日为一周的第一天的一周的周数

时间:2012-09-11 03:04:31

标签: javascript date calendar

如何在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];
}

1 个答案:

答案 0 :(得分:0)

一年的第一周,从星期一开始的几个星期,就像你的代码所暗示的那样是星期四的第一周。

如果您的周从星期日开始,第一周将是包含星期三的第一周。

如果年份从周四到周六开始,则直到周日的日子将是上一年的最后一周。如果年份从星期一,星期二或星期三开始,那么上一年的最后一个星期日就是今年第一周的开始。