一尘不染

javascript根据周数计算日期

javascript

我如何知道JavaScript的周数和年份来计算日期?对于第20周和2013年以获得5/16/2013,我正在尝试这样做:

Date.prototype.dayofYear = function() {        
    var d = new Date(this.getFullYear(), 0, 0);        
    return Math.floor((enter code here this - d) / 8.64e + 7); 
}

阅读 996

收藏
2020-05-01

共1个答案

一尘不染

function getDateOfWeek(w, y) {
var d = (1 + (w - 1) * 7); // 1st of January + 7 days for each week

    return new Date(y, 0, d);
}

这使用简单的周定义,即2013年的第20周是5月14日。

计算给定ISO8601周的开始日期(始终为星期一)

function getDateOfISOWeek(w, y) {
    var simple = new Date(y, 0, 1 + (w - 1) * 7);
    var dow = simple.getDay();
    var ISOweekStart = simple;
    if (dow <= 4)
        ISOweekStart.setDate(simple.getDate() - simple.getDay() + 1);
    else
        ISOweekStart.setDate(simple.getDate() + 8 - simple.getDay());
    return ISOweekStart;
}
2020-05-01