Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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_Jquery Plugins - Fatal编程技术网

Javascript 一年有几个星期

Javascript 一年有几个星期,javascript,jquery-plugins,Javascript,Jquery Plugins,给定一年,我如何在javascript/JQuery中计算给定一年中有多少周?52还是53 我已经找到了很多答案,但没有一个对我有用- 我需要将一年中的第一天计算为第一周(显示在Outlook日历中)。 在我看到的计算中,第一周从一年中的第一个星期日开始 如果是您要查找的周号,您可以通过检查12月28日的周号来执行此操作,因为该日期总是在一年的最后一周,如1月4日总是在第一周: Date.prototype.getWeek=function(){ var date=新日期(this.getTi

给定一年,我如何在javascript/JQuery中计算给定一年中有多少周?52还是53

我已经找到了很多答案,但没有一个对我有用- 我需要将一年中的第一天计算为第一周(显示在Outlook日历中)。 在我看到的计算中,第一周从一年中的第一个星期日开始

如果是您要查找的周号,您可以通过检查12月28日的周号来执行此操作,因为该日期总是在一年的最后一周,如1月4日总是在第一周:

Date.prototype.getWeek=function(){
var date=新日期(this.getTime());
设置时间(0,0,0,0);
//本周的星期四决定年份。
date.setDate(date.getDate()+3-(date.getDay()+6)%7);
//1月4日总是在第一周。
var week1=新日期(Date.getFullYear(),0,4);
//调整到第1周的星期四,计算从日期到第1周的周数。
返回1+Math.round(((date.getTime()-week1.getTime())/86400000-3+(week1.getDay()+6)%7)/7);
}
console.log((新日期(2019年11月28日)).getWeek();//52
console.log((新日期(2020,11,28)).getWeek();//53

console.log((新日期(2021,11,28)).getWeek();//52
console.log(52)可能重复,除此之外,请澄清此处“周”的含义。你的意思是在一周的开始日对部分周进行特殊处理吗?“我已经找到了很多答案”-哪些答案?“但是还没有一个对我有效”-提供一个你尝试实现它们的例子,解释结果如何与你想要的不同。抱歉,客户决定使用第二个选项(一年中的第一周是从第一个星期日开始的)-因此我的Q现在无关紧要。嗨,当我运行这行时:console.log((新日期(2016,11,28)).getWeek();我有52周的假期。但在outlook周,我有53周。差异的原因是4/1在第二周。您知道我应该对代码做什么更改才能使其工作吗?如果我这样更改这行:var week1=new Date(Date.getFullYear(),0,1);2016年没问题,但2017年错了:(2016年有52个ISO周,因此outlook是错误的。如果您要查找的不是ISO周,则需要准确指定您要查找的内容。根据ISO 8601,1月4日总是在第1周。outlook必须使用ISO 8601以外的其他周定义。可能取决于您的地区。