php中可以使用date('W')函数获取特定日期的周数,而在Javascript中就没有这个简单的方法来直接获取了...
php中可以使用date('W')函数获取特定日期的周数,而在javascript中就没有这个简单的方法来直接获取了,在一个开发周报的模块中,有一个需求,根据用户选择的日期,自动生成周报标题,标题格式为:第XX周周报,其中,XX是用户选择日期的周数。
最容易想到的方法就是通过使用AJAX,而周数则是通过服务器计算,可是这个方法过于重量级了,用户每改变一次日期要连接一次服务器,不是很好。
或者直接使用Javascript函数计算日期的周数,那就要自己写js代码了,首先Google一下有没有已有的解决方案,真的找到了几个,可是都和PHP计算的周数不同,于是我在前人的基础上,重新修改了代码,终于写出了和PHP结果相同的根据日期计算周数(第几周)代码:
复制代码 代码如下:
function getYearWeek(date){
var date2=new Date(date.getFullYear(), 0, 1);
var day1=date.getDay();
if(day1==0) day1=7;
var day2=date2.getDay();
if(day2==0) day2=7;
d = Math.round((date.getTime() - date2.getTime()+(day2-day1)*(24*60*60*1000)) / 86400000);
return Math.ceil(d /7)+1;
}