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,'/'))
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐