根据某个时间获取此时间的在当月的第一天和最后一天以及七天后的日期

  //获取月份天数
    getMonthDays(year: number, month: number): number {
      const isLeapYear = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
      if (month === 2) {
        return isLeapYear ? 29 : 28; // 2月份根据闰年来判断
      } else if ([4, 6, 9, 11].includes(month)) {
        return 30; // 4、6、9、11月份是30天
      } else {
        return 31; // 剩下的月份都是31天
      }
    },
    //获取这个月最后天和第一天
    getMonthStartAndEndDates(date: Date): [string, string] {
      const currDate = new Date(date); // 复制日期对象(注意:直接对 date 做修改会影响传入的参数)
      const year = currDate.getFullYear(); // 获取指定日期的年份
      const month = currDate.getMonth(); // 获取指定日期的月份(注意:month 的取值从 0 开始)
      const monthStr = (month + 1).toString().padStart(2, '0'); // 将月份转换为字符串,并且补齐前导的 0
      const firstDay = `${year}-${monthStr}-01`; // 设置这个月的第一天为 01 日
      const lastDay = `${year}-${monthStr}-${this.getMonthDays(year, month + 1)}`; // 设置这个月的最后一天
      return [firstDay, lastDay];
    },
//获取周的开始日期和结束日期
    getSevenDaysAfterDate(date: Date): [string, string] {
      const currDate = new Date(date); // 复制日期对象(注意:直接对 date 做修改会影响传入的参数)
      const currTimestamp = currDate.getTime() + 7 * 24 * 60 * 60 * 1000; // 获取 7 天后的时间戳,单位为毫秒
      const nextDate = new Date(currTimestamp); // 生成日期对象
      return [currDate.toISOString().substring(0, 10), nextDate.toISOString().substring(0, 10)]; // 返回当天日期和推算后的日期
    },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值