1、计算时间差
intervalTime(autoTime) {
//var autoTime='2022-05-05 21:58:59' //尽量让服务端传时间戳,能够有效避免时区问题
var date1 = (Date.parse(new Date()))/1000;//计算当前时间戳
var date2 = (Date.parse(new Date(autoTime)))/1000;; //自动收货的时间戳 (字符串转时间戳)
var date3 = (date2- date1)*1000; //时间差的毫秒数
//计算出相差天数
var days = Math.floor(date3 / (24 * 3600 * 1000));
//计算出小时数
var leave1 = date3 % (24 * 3600 * 1000); //计算天数后剩余的毫秒数
var hours = Math.floor(leave1 / (3600 * 1000));
//计算相差分钟数
var leave2 = leave1 % (3600 * 1000); //计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000));
//计算相差秒数
var leave3 = leave2 % (60 * 1000); //计算分钟数后剩余的毫秒数
var seconds = Math.round(leave3 / 1000);
console.log(days + "天 " + hours + "小时 ")
console.log(days + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒");
return days + "天 " + hours + "小时 "
}
2、比较时间的大小
moreTime(autoTime){
//var autoTime='2022-05-05 21:58:59'
var date1 = (Date.parse(new Date()))/1000;//计算当前时间戳
var date2 = (Date.parse(new Date(autoTime)))/1000;; //自动收货的时间戳 (字符串转时间戳)
//date1 小于date2的话,就返回 `true`,否则返回 `false`
return date1<date2
}
3、页面使用(react)
//当前时间大于自动收货时间时,不展示"还剩xx天xx小时自动确认收货",否则展示
{this.moreTime(autoTime)?<div>还剩{this.intervalTime(autoTime)}自动确认收货</div>:null}