如何获取一年中的周数,其中星期日是javascript中一周的第一天
如何获取一年中的周数,其中星期日在javascript中作为一周的第一天,也是固定的年数 e、 g.如何获取一年中的周数,其中星期日是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);
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())代码>,对吗?