【JS】日期减一天,月份第一天减一天变00解决

 一、代码贴图

   formatNumber(number) {
      return number < 10 ? `0${number}` : number
    },
    getNowMonths() {
      let currentDate = new Date()
      currentDate.setDate(currentDate.getDate() - 1)
      let year = currentDate.getFullYear()
      //补全位数
      let month = (currentDate.getMonth() + 1).toString().padStart(2, '0')
      let day = currentDate.getDate().toString().padStart(2, '0')
      const hours = this.formatNumber(currentDate.getHours())
      const minutes = this.formatNumber(currentDate.getMinutes())
      const seconds = this.formatNumber(currentDate.getSeconds())

      // 返回格式化后的字符串
      return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
    },

二、代码解释 

1)、formatNumber方法是一个补0操作

        接收一个数字 number 作为参数,返回一个字符串。

        如果 number 小于 10,会在 number 前补 0(例如,将 5 转换为 "05");

        如果 number 大于或等于 10,则直接返回该数字。

2)、getNowMonths方法是写减一天的操作 

  1. 创建并调整日期:使用 new Date() 创建当前日期的一个实例。通过 setDate(currentDate.getDate() - 1) 将日期调整为当前日期的前一天。                

  2. 提取并格式化年份、月份、日期:      getFullYear()【年】  、getMonth() + 1【月】  月份和日期都通过 toString().padStart(2, '0') 确保它们是两位数的字符串。            

  3. 提取并格式化时间:使用 getHours()getMinutes()getSeconds() 获取当前小时、分钟和秒,并通过 formatNumber 函数确保它们都是两位数。                                          

  4. 返回格式化后的字符串:将格式化后的年、月、日和时间组合成一个字符串并返回。

三、Date.setDate(day)方法拓展

* setDate() 方法用于设置一个月的某一天。

1、eg: 

// 实例 设置一个月的某一天:
var d = new Date();
d.setDate(15);
Thu Aug 15 2024 10:10:31 GMT+0800 (中国标准时间)  // d 输出结果: 

2、属性:

day必需。

表示一个月中的一天的一个数值(1 ~ 31):

  • 0 为上一个月的最后一天
  • -1 为上一个月最后一天之前的一天

如果当月有 31 天:

  • 32 为下个月的第一天

如果当月有 30 天:

  • 32 为下一个月的第二天

3、返回值:

Type描述
Number1970年1月1日午夜至调整过日期的毫秒数。在 ECMAScript 标准化之前,该方法什么都不返回。

原文链接:使用原生js将当前时间减1天并转成YYYY-MM-DD格式_js date减一天-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值