轮询获取当前时间之前2天至当天的时间
场景:
在项目中,需要做一个定时任务,每隔两天或者几天的频率对表格数据进行遍历访问,访问之后发现不同数据时,发出警告!
思路:
后端接口入参为当前时间和两天之前的时间。时间格式2020-09-24 00:00:00
首先获取系统当前时间然后根据时间戳转化为毫秒数减去相隔天数的毫秒数即可得到相隔之后的时间戳转化为时间格式。以之后的天数作为开始时间,当前时间作为结束时间传入参数查询。
首先根据需要定义两个时间转化的方法:
根据当前时间获取格式为2020-09-22 00:00:00的时间数。
let time = new Date();
time = this.getTime(time);
getTime(value) {
let date = value;
let y = date.getFullYear();
let MM = date.getMonth() + 1;
MM = MM < 10 ? ('0' + MM) : MM;
let d = date.getDate();
d = d < 10 ? ('0' + d) : d;
let h = date.getHours();
h = h < 10 ? ('0' + h) : h;
let m = date.getMinutes();
m = m < 10 ? ('0' + m) : m;
let s = date.getSeconds();
s = s < 10 ? ('0' + s) : s;
return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s;
},
根据2020-09-24 00:00:00时间格式转化为毫秒数
changeTime(value) {
var thisTime = value;
thisTime = thisTime.replace(/-/g, '/');
var time = new Date(thisTime);
time = time.getTime();
return time;
},
再根据时间毫秒数计算出之前的时间节点。
// 定义间隔时间配置天数
let times = res.result.data[0].times;
//当前时间
let nowData = new Date();
let y = nowData.getFullYear();
let MM = nowData.getMonth() + 1;
MM = MM < 10 ? ('0' + MM) : MM;
let d = nowData.getDate();
d = d < 10 ? ('0' + d) : d;
//结束时间
let afterTime = y + '-' + MM + '-' + d + ' ' + "24:00:00"; //结束时间
//天数时间戳
let timeStamp = times * 24 * 60 * 60 * 1000
//获取开时间戳
let timesd = this.changeTime(afterTime) - timeStamp;
//红开始时间
let beforeTime = new Date(timesd)
//开始时间转换
beforeTime = this.getTime(beforeTime);//开始时间
let body={
startTime:beforeTime,
endTIme:afterTime
}
集思广益,仅供学习,侵权即删!!

浙公网安备 33010602011771号