js计算两个时间戳之间的时间差(多少天、时、分、秒)
util.js 文件中
1.定义方法
//计算两个时间之间的时间差 多少天时分秒
function intervalTime(startTime,endTime) {
// var timestamp=new Date().getTime(); //计算当前时间戳
var timestamp = (Date.parse(new Date()))/1000;//计算当前时间戳 (毫秒级)
var date1 = ""; //开始时间
if(timestamp<startTime){
date1=startTime;
}else{
date1 = timestamp; //开始时间
}
var date2 = endTime; //结束时间
// var date3 = date2.getTime() - date1.getTime(); //时间差的毫秒数
var date3 = (date2- date1)*1000; //时间差的毫秒数
//计算出相差天数
var days = Math.floor(date3 / (24 * 3600 * 1000));
if(days < 0){
days = days*(-1)
}
//计算出小时数
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 + "小时 ")
// return days + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒"
return days + "天 " + hours + "小时 "
}
2.暴露给外部调用
module.exports = {
intervalTime
}
3.其他页面导入
import {
intervalTime
} from "@/common/util.js"
4.data中声明
data() {
return {
intervalTime:intervalTime
};
},
5.页面中使用,传入两个时间戳,如果是 2023-10-12 这类格式,先换算格式为 2023/10/12 , 再小改下 js文件内容,换算成时间戳,再继续比较
<view >{{intervalTime(item.start_time,item.end_time)}}</view>
号外补充:
1.查询资料后,得知iOS 系统对 JavaScript 中的 new Date() 方法有严格的格式要求。
let now = new Date("2020-08-08 00:00") // now会返回valid Date
2.正确的写法应该是
let now = new Date("2020/08/08 00:00")
3.最后可以这样写
let date = "2020-08-08 00:00"
let now = new Date(date.replace(/-/g,'/'))