周起始日,月起始日,本年第几周

这篇博客介绍了三个JavaScript函数,用于获取指定日期所在周和月的起始日期,以及计算当前日期在本年的第几周。getWeekTime()函数计算周的起始日期,getMonthTime()函数获取月的起始日期,而getWeek()函数则返回日期在本年的周数。这些函数对于日程管理和数据分析非常实用。
摘要由CSDN通过智能技术生成

获取对应日期所在周的起始日期

   function getWeekTime(time) {
      // 获取所在周的起始日
      let dayCode = new Date(time).getDay() + 1
      let dayLong = 24 * 60 * 60 * 1000
      return {
        startDay: new Date(
          !dayCode ? time - dayLong * 7 : time - dayLong * (dayCode - 1)
        ).getTime(),
        endDay: new Date(
          !dayCode ? time : time + dayLong * (7 - dayCode)
        ).getTime()
      }
    }

获取对应日期所在月的起始日期

    function getMonthTime(time) {
      // 获取所在月的起始日
      let currentDay = new Date(time)
      let currentFullYear = currentDay.getFullYear()
      let currentMonth = currentDay.getMonth()
      return {
        startDay: new Date(currentDay.setDate(1)).getTime(),
        endDay: new Date(
          new Date(currentFullYear, currentMonth + 1, 0)
        ).getTime()
      }
    }

获取当前日在本年的第几周

  function getWeek(endDate) {
      //本年的第一天
      var beginDate = new Date(endDate.getFullYear(), 0, 1)
      //星期从0-6,0代表星期天,6代表星期六
      var endWeek = endDate.getDay()
      if (endWeek == 0) endWeek = 7
      var beginWeek = beginDate.getDay()
      if (beginWeek == 0) beginWeek = 7
      //计算两个日期的天数差
      var millisDiff = endDate.getTime() - beginDate.getTime()
      var dayDiff = Math.floor(
        (millisDiff + (beginWeek - endWeek) * (24 * 60 * 60 * 1000)) / 86400000
      )
      return `第${Math.ceil(dayDiff / 7) + 1}周`
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值