Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取一年中的周数,其中星期日是javascript中一周的第一天_Javascript_Date_Calendar - Fatal编程技术网

如何获取一年中的周数,其中星期日是javascript中一周的第一天

如何获取一年中的周数,其中星期日是javascript中一周的第一天,javascript,date,calendar,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);

如何获取一年中的周数,其中星期日在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];
}

正如代码所示,一年中的第一周,从周一开始的几周,是第一个有周四的周

如果你的一周从星期天开始,那么第一周将是包含星期三的第一周


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

程序员通常编写代码,而不是搜索某个内容,并要求其他人修复他们发现的内容。你试过自己做你的工作吗?@zerkms我试过这一行
var weekNo=Math.ceil(((d-yearStart)/86400000)+1)/7)
从来没用过,stange。你试过什么?我看你刚才照着原样抄了这行。你试过理解这段代码的作用吗?@zerkms我不知道如果有人有更多的经验来解决这个问题,而不是自己解决它,会是什么问题。你不知道如何回答,走开吧。“2012-12-31应该和2013-01-01有相同的年份和周数”-什么?2012年的日期如何与2013年的日期具有相同的年份?12月的日期怎么能和1月的日期有相同的周数呢?所以我应该这样做,
d.setDate(d.getDate()+3-d.getDay()),对吗?