javascript获取当前日期以及前n天的日期(格式yyyy-mm-dd)附完整代码

需求

在这里插入图片描述

  • 获取当前日期,以及当前日期的前30天,格式为yyyy-mm-dd(如2022-10-18)

代码

这里我为了后续使用方便,封装了一个工具类js文件,且里面参数没有直接写死的
utils.js

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : '0' + n
}
// 获取当前日期 yyy-mm-dd
const formatDate = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()

  return [year, month, day].map(formatNumber).join('-')
}
// 获取前n天的日期 last为要求的哪一天,lastDate为哪一天的前n天
const getTimeLastDate = (last,lastDate) => {
  const year = last.getFullYear()
  const day = last.getDate()
  const ti = day - lastDate
  // const month6 = last.getMonth() + 1
  // const dayOfWeek = last.getDay() //今天本周的第几天  
  // 判断是否月初
  if (ti <= 0) {
    const month = last.getMonth() + 1 - 1
    const d = new Date(year, month, 0)
    const dayBig = d.getDate() //获取当月的所有天数
    const ti1 = dayBig + ti
    return [year, month, ti1].map(formatNumber).join('-')
  } else {
    const month = last.getMonth() + 1
    return [year, month, ti].map(formatNumber).join('-')
  }
  // return [year, month, day].map(formatNumber).join('-')

}

module.exports = {
  formatDate: formatDate,
  getTimeLastDate: getTimeLastDate
}

使用(以在小程序 中为例),
直接在声明data的时候调用即可

const utils = require('../../../utils/util');
data:{
    startDate: utils.getTimeLastDate(new Date(), 30), //当前日期前30天 要前几天的数据就传几
    endDate: utils.formatDate(new Date()), // 当前日期
}

以上的代码在计算超过30天的会有问题,建议使用下面这个

  getNextDate(date, day) {
    var dd = new Date(date);
    dd.setDate(dd.getDate() + day);
    var y = dd.getFullYear();
    var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
    var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
    return y + "-" + m + "-" + d;
  },

调用(当前日期前30天):

getNextDate(new Date(), -30)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coderYYY

请简单粗暴地爱我,一元一元的赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值