javascript根据当前日期获取往前一个月的日期数组

getOneMonthDateList () {
  let daysInMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
  let currentDate = new Date()
  currentDate.setMonth(currentDate.getMonth() + 1)
  let strYear = currentDate.getFullYear()
  let strDay = currentDate.getDate()
  let strMonth = currentDate.getMonth() + 1
  if (((strYear % 4) === 0) & ((strYear % 100) !== 0) || ((strYear % 400) === 0)) {
    daysInMonth[2] = 29
  }
  if (strMonth - 1 === 0) {
    strYear -= 1
    strMonth = 12
  } else {
    strMonth -= 1
  }
  strDay = Math.min(strDay, daysInMonth[strMonth])
  if (strMonth < 10) {
    strMonth = '0' + strMonth
  }
  if (strDay < 10) {
    strDay = '0' + strDay
  }
  let dateStr = strYear + '-' + strMonth + '-' + strDay
  const dateList = []
  let startDate = new Date(dateStr)
  while (true) {
    startDate.setDate(startDate.getDate() + 1)
    if (startDate.getTime() < currentDate.getTime()) {
      if (startDate.getDate() < 10) {
        // startDate.getFullYear() 获取年,此处没加上年份
        dateList.push(startDate.getMonth() + '.0' + startDate.getDate())
      } else {
        dateList.push(startDate.getMonth() + '.' + startDate.getDate())
      }
    } else {
      break
    }
  }
  return dateList
}
JavaScript获取当前时间向前推三个月的方法有多种实现方式。以下是其中两种实现方法: 方法一:使用Date对象和setMonth()方法 首先,使用Date对象获取当前时间的月份。然后,使用setMonth()方法将月份减去3,即可得到当前时间向前推三个月的时间。 代码示例: ```javascript var date = new Date(); date.setMonth(date.getMonth() - 3); console.log(date); ``` 在控制台输出的结果中,可以看到日期已经向前推了三个月。 需要注意的是,setMonth()方法会自动处理润月的问题。如果当前时间是2月30日,向前推3个月,就会变成11月30日,而不是九月份的最后一天。 方法二:使用moment.js库 moment.js是一个JavaScript日期处理库。它提供了一系列丰富的方法,可以方便地处理时间和日期之间的转换和计算。 要使用moment.js获取当前时间向前推三个月的时间,只需要使用它提供的subtract()方法即可。 代码示例: ```javascript var now = moment(); var threeMonthsAgo = moment().subtract(3, 'months'); console.log(threeMonthsAgo); ``` 在控制台输出的结果中,可以看到日期已经向前推了三个月。 需要注意的是,使用moment.js需要先引入moment.js库文件,可以从官网下载并引入到页面中。 以上是JavaScript获取当前时间向前推三个月的两种实现方式,可以根据实际需要选择适合的方法。同时,还需要注意处理时间的时区问题,以确保在多个时区中都能正确显示时间。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值