getTime()方法 通常我們計(jì)算時(shí)間差都是通過獲取兩個(gè)時(shí)間數(shù)據(jù),然后分別使用getTime()方法返回與固定的1970 年 1 月 1 日的時(shí)間差,通過對(duì)返回毫秒數(shù)的差,換算成時(shí)間單位,得出兩個(gè)時(shí)間的時(shí)間差。 開始操作: var t1="2017/08/28 04:56:38"; //數(shù)據(jù)
var dateBegin = new Date(t1);//轉(zhuǎn)化為Date對(duì)象的形式
//Mon Aug 28 2017 04:56:38 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間) 這里就是Date對(duì)象的數(shù)據(jù)形式
時(shí)間格式這里的話就要注意一下后端給的時(shí)間數(shù)據(jù)格式的問題,比如下面兩種:
因?yàn)閚ew Date()方法不能處理第二種數(shù)據(jù),所以我們這里需要將第二種數(shù)據(jù)格式轉(zhuǎn)化為第一種數(shù)據(jù)的格式。 let t1="2017-05-12 00:13:53";
let dateBegin = new Date(d1.replace(/-/g, "/"));//replace方法將-轉(zhuǎn)為/
另一個(gè)時(shí)間數(shù)據(jù): let dateEnd = new Date();//當(dāng)前時(shí)間數(shù)據(jù)
完整計(jì)算時(shí)間差(天、小時(shí)、分鐘、秒)的代碼:先獲取之間的毫秒差,通過毫秒差換算出你所需要的時(shí)間單位,然后時(shí)間單位之間的換算根據(jù)的是他們的倍數(shù)關(guān)系。 function timeFn(d1) {//di作為一個(gè)變量傳進(jìn)來
//如果時(shí)間格式是正確的,那下面這一步轉(zhuǎn)化時(shí)間格式就可以不用了
let dateBegin = new Date(d1.replace(/-/g, "/"));//將-轉(zhuǎn)化為/,使用new Date
let dateEnd = new Date();//獲取當(dāng)前時(shí)間
let dateDiff = dateEnd.getTime() - dateBegin.getTime();//時(shí)間差的毫秒數(shù)
let dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//計(jì)算出相差天數(shù)
let leave1=dateDiff%(24*3600*1000) //計(jì)算天數(shù)后剩余的毫秒數(shù)
let hours=Math.floor(leave1/(3600*1000))//計(jì)算出小時(shí)數(shù)
//計(jì)算相差分鐘數(shù)
let leave2=leave1%(3600*1000) //計(jì)算小時(shí)數(shù)后剩余的毫秒數(shù)
let minutes=Math.floor(leave2/(60*1000))//計(jì)算相差分鐘數(shù)
//計(jì)算相差秒數(shù)
let leave3=leave2%(60*1000) //計(jì)算分鐘數(shù)后剩余的毫秒數(shù)
let seconds=Math.round(leave3/1000)
console.log(" 相差 "+dayDiff+"天 "+hours+"小時(shí) "+minutes+" 分鐘"+seconds+" 秒")
console.log(dateDiff+"時(shí)間差的毫秒數(shù)",dayDiff+"計(jì)算出相差天數(shù)",leave1+"計(jì)算天數(shù)后剩余的毫秒數(shù)"
,hours+"計(jì)算出小時(shí)數(shù)",minutes+"計(jì)算相差分鐘數(shù)",seconds+"計(jì)算相差秒數(shù)");
}
let t3="2017-08-18 04:56:38";
timeFn(t3);
|
|