JavaScript 有关获取当前/上个月/12个月前/七/7天/一周之前/下周一的日期格式 持续更新...

思路 当前时间获取 主要是利用时间戳的时间差来显示当前时间
在线时间戳转换网站 方便校验https://tool.lu/timestamp/
时间戳:unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。 [1]
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)
是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z.
一个小时表示为UNIX时间戳格式为:3600秒 即是3600000;一天表示为UNIX时间戳为86400秒。

日期这些 可以使用内置方法转换时间戳来获取当前日期
例如
计算两个日期间 可以使用时间戳

let days = new Date().getTime() - new Date('2021/01/01').valueOf();     // 计算相差天数

// 一天时间戳 86400000

七天前

new Date(new Date().setDate(new Date().getDate() - 7)).toLocaleDateString();//七天前的时间 2021/12/10

一个月前

new Date(new Date().setDate(new Date().getDate() - 30)).toLocaleDateString();//一个月前的时间 2021/12/10

一年前

new Date(new Date().setDate(new Date().getDate() - 365)).toLocaleDateString();//一年前的时间 2020/12/10

当前日期

new Date().toLocaleDateString();//当前时间2021/12/17

获取上个月最后一天

  //获取上一个月最后一天2022-05-31 (今天是2022-06-27)
        let MonthlastDay = new Date(
          new Date(new Date().getFullYear(), new Date().getMonth() - 1, new Date(new Date().getFullYear(), new Date().getMonth(), 0).getDate())
        ).toLocaleDateString();

获取上个月第一天

  //获取上一个月最后一天2022-05-31 (今天是2022-06-27)
        let MonthlastDay = new Date(
          new Date(new Date().getFullYear(), new Date().getMonth() - 1, new Date(new Date().getFullYear(), new Date().getMonth(), 0).getDate())
        ).toLocaleDateString();
        let arr=MonthlastDay.split('/');
        let day=arr[0]+'-'+arr[1]+'-01';
    // day=   2022-05-01

获取上个月到12个月前的时间段

    let MonthlastDay = new Date(
          new Date(new Date().getFullYear(), new Date().getMonth() - 1, new Date(new Date().getFullYear(), new Date().getMonth(), 0).getDate())
        ).toLocaleDateString(); //2022-05-31 
        
let addList = []; //先创建一个空数组,过滤存在超标表里面的设备序列号uploaddeviceinfo表的数据
        let premonth = []; //先创建一个空数组,方便后面存储日期数据
        let d = new Date(); // 当前时间
        d.setMonth(d.getMonth() + 1, 1); //设置月份,设置当前日为1号 (避免出现31号时候,其他月份没有31号的bug)
        for (let i = 0; i < configInfo.obd.mns.AL.HowMonth + 1; i++) {
          //开始循环
          d.setMonth(d.getMonth() - 1); //月份值-1  循环的时候在当前月份上减一 来获取上个月的月份(0 ~ 11)
          let m = d.getMonth() + 1; // 月份 + 1 来获取真正的月份 (1 ~ 12)
          m = m < 10 ? "0" + m : m; //三元表达式来判断 如果小于10月 给前面 +0 如果大于等于10月 则不变输出
          premonth.push(d.getFullYear() + "-" + m); //将 循环出来的 年月 一次 存放进 result 数组中
        }
        //premonth[premonth.length - 1]+ "-" + "01"; //2021-06-01
        let months = [premonth[premonth.length - 1] + "-" + "01", MonthlastDay ];  //获取到前几个月数据到上个月月末时间段
      // months =  2021-06-01 2022-05-31

获取下周一日期

		//今天是 2022-06-28周二 ,则本周一是2022-06-27
  let myDate = new Date();
          myDate.setDate(myDate.getDay() == 0 ? myDate.getDate() - 6 : myDate.getDate() - (myDate.getDay() - 1)); //先获取当前日期的周一
      let dtime = new Date(myDate.setDate(myDate.getDate() + 7)).toLocaleDateString(); //+7代表下一个周一
      //dtime="2022/7/4" 下周一

获取七天之后的日期

//今天是 2022-06-28周二
let time=new Date(new Date().setDate(new Date().getDate()+ 7)).toLocaleDateString();//七天后的时间 
//time="2022/7/5"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值