思路 当前时间获取 主要是利用时间戳的时间差来显示当前时间
在线时间戳转换网站 方便校验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"