js实现周数与日期之间的转换

本文介绍如何使用JavaScript将周数转换为日期,并根据日期计算周数。首先,通过计算当年第一周和最后一周的天数来确定完整的星期数。接着,计算1月1日到目标日期的毫秒数,再将目标日期转换为时间戳,从而完成周数的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

周数转为日期

思路:
需要的参数:

   //   year       年
   //   week       周
   //   day        需要输出星期几对应的日期   (0-6,   0代表周日)
  1. 算出该年第一周有几天(用毫秒数表示):date1 = new Date(year, 0, 1); firstDay = (7-date1.getDay())*dayMS
  2. 算出最后一周有几天(用毫秒数表示):day*dayMS
  3. 减去第一周和最后一周,week-2就是满7天的星期数。
  4. 算出1月1日距离目标日期的毫秒数date1.getTime()+firstDay+weekMS+day*dayMS
  5. date1.setTime(result);计算出目标日期的时间戳
  6. 根据需要转化为其他格式
dateFromWeek(year,   week,   day){
          //   year       年
          //   week       周
          //   day        需要输出星期几对应的日期   (0-6,   0代表周日)
          var   date1   =   new   Date(year,   0,   1);
          var   dayMS   =   24*60*60*1000;
          var   firstDay   =   (7-date1.getDay())*dayMS;
          var   weekMS   =   (week-2)*7*dayMS;
          var   result   =   date1.getTime()+firstDay+weekMS+day*dayMS;
          date1.setTime(result);
          // return   date1.toLocaleDateString();
          return   date1;
      }

根据日期算出周数

      weekOfYear(year,   month,   day){
        //   year      年
        //   month     月
        //   day       日
        //   每周从周日开始
        var   date1   =   new   Date(year,   0,   1);
        var   date2   =   new   Date(year,   month-1,   day,   1);
        var   dayMS   =   24*60*60*1000;
        var   firstDay   =   (7-date1.getDay())*dayMS;
        var   weekMS   =   7*dayMS;
        date1   =   date1.getTime();
        date2   =   date2.getTime();
        return   Math.ceil((date2-date1-firstDay)/weekMS)+1;
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值