js计算两个时间时间差(天时分秒)
2018-09-07 本文已影响0人
jing_bao
Date 对象用于处理日期和时间。
创建 Date 对象的语法:
var myDate=new Date()
Date 对象会自动把当前日期和时间保存为其初始值。
参数形式有以下5种:
new Date("month dd,yyyy hh:mm:ss");
new Date("month dd,yyyy");
new Date(yyyy,mth,dd,hh,mm,ss);
new Date(yyyy,mth,dd);
new Date(ms);
在这里我选用的是第三种new Date(yyyy,mth,dd,hh,mm,ss);
//其中starttime格式为20180101010101
function getYMDHMS(startTime, endTime) {
if(startTime.length < 14 || endTime.length < 14) {
alert('时间格式不正确');
}
var startArr = [startTime.substring(0, 4), startTime.substring(4, 6), startTime.substring(6, 8), startTime.substring(8, 10), startTime.substring(10, 12), startTime.substring(12, 14)];//切分开始时间为数组
var endArr = [endTime.substring(0, 4), endTime.substring(4, 6), endTime.substring(6, 8), endTime.substring(8, 10), endTime.substring(10, 12), endTime.substring(12, 14)];//切分结束时间为数组
var dateStart = new Date(startArr[0], startArr[1], startArr[2], startArr[3], startArr[4], startArr[5]);//采用new Date(yyyy,mth,dd,hh,mm,ss);创建方式分别传入年月日时分秒
var dateEnd = new Date(endArr[0], endArr[1], endArr[2], endArr[3], endArr[4], endArr[5]);
var dateInterval = dateEnd.getTime() - dateStart.getTime() //获取时间差毫秒
//计算出相差天数
var days = Math.floor(dateInterval / (24 * 60 * 60 * 1000));
//计算小时数
var hourLevel = dateInterval % (24 * 60 * 60 * 1000);
var hours = Math.floor(hourLevel / (60 * 60 * 1000))
//计算分钟数
var minutesLevel = hourLevel % (60 * 60 * 1000);
var minutes = Math.floor(minutesLevel / (60 * 1000));
//计算秒数
var seconds = Math.round((minutesLevel % (60 * 1000)) / 1000);
alert('天数 ' + days + ' 小时数 ' + hours + ' 分钟数 ' + minutes + ' 秒数 ' + seconds)
}
调用方式
getYMDHMS('20180901000121', '20180906000111')