使用js计算当前日期的周数(第几周)

发布时间:2019-09-24编辑:脚本学堂
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;