JS 计算时间差【单位:分钟】

//时间格式化
Date.prototype.Format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1,
        "d+": this.getDate(),
        "h+": this.getHours(),
        "m+": this.getMinutes(),
        "s+": this.getSeconds(),
        "q+": Math.floor((this.getMonth() + 3) / 3),
        "S": this.getMilliseconds()
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

//计算时间差-分钟
function TimeDifference(time1, time2) {
    //判断开始时间是否大于结束日期
    if (time1 > time2) {
        alert("开始时间不能大于结束时间!");
        return false;
    }

    //截取字符串
    var begin1 = time1.substr(0, 10).split("-");
    var end1 = time2.substr(0, 10).split("-");

    //将拆分的数组重新组合,并实例成化新的日期对象
    var date1 = new Date(begin1[0] + - + begin1[1] + - + begin1[2]);
    var date2 = new Date(end1[0] + - + end1[1] + - + end1[2]);

    //得到两个日期之间的差值m,以分钟为单位
    var m = parseInt(Math.abs(date2 - date1) / 1000 / 60);

    //小时数和分钟数相加得到总的分钟数
    //time1.substr(11,2)截取字符串得到时间的小时数
    //parseInt(time1.substr(11,2))*60把小时数转化成为分钟
    var min1 = parseInt(time1.substr(11, 2)) * 60 + parseInt(time1.substr(14, 2));
    var min2 = parseInt(time2.substr(11, 2)) * 60 + parseInt(time2.substr(14, 2));

    //两个分钟数相减得到时间部分的差值,以分钟为单位
    var n = min2 - min1;

    var sec1 = parseInt(time1.substr(17, 2)) / 60;
    var sec2 = parseInt(time2.substr(17, 2)) / 60;
    var s = sec2 - sec1;

    //将日期和时间两个部分计算出来的差值相加,即得到两个时间相减后的分钟数
    var minutes = m + n+s;
    return minutes.toFixed(2);
}
//时间-加分钟数
function addMinutes(t, m) {
    var time = new Date(t);
    time.setMinutes(time.getMinutes() + m, time.getSeconds(), 0);
    return time;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值