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')
上一篇 下一篇

猜你喜欢

热点阅读