背景
最近一個(gè)項(xiàng)目要做一個(gè)倒計(jì)時(shí)功能(如下圖),自然首要的是想到用結(jié)束時(shí)間時(shí)間戳 - 當(dāng)前手機(jī)時(shí)間時(shí)間戳,然后由得到的差值計(jì)算還剩 N天N小時(shí)N分N秒

image.png
var nowTimestamp = new Date().getTime();
var endTimestamp = new Date("2018-07-26 14:58:32").getTime();
var leftSeconds = endTimestamp - nowTimestamp;
console.log("當(dāng)前時(shí)間時(shí)間戳",nowTimestamp);
console.log("結(jié)束時(shí)間時(shí)間戳",endTimestamp);
console.log("差值",leftSeconds);

PC端輸出
問(wèn)題描述 : PC端調(diào)試頁(yè)面,發(fā)現(xiàn)一切是那么的順利,計(jì)算出了準(zhǔn)確的時(shí)間戳。可是(OK,there is always a but );是的當(dāng)我把這個(gè)頁(yè)面,在手機(jī)端查看時(shí),發(fā)現(xiàn)安卓正常,但是 ios呢卻是NaN

ios時(shí)間戳獲取演示
原因
原來(lái)當(dāng)我獲取結(jié)束時(shí)間時(shí)間戳?xí)r,new Date("2018-07-26 14:58:32"); 返回 Invalid Date(錯(cuò)誤的時(shí)間格式),用錯(cuò)誤的時(shí)間對(duì)象再去獲取時(shí)間戳,自然是 NaN, ios 下的 new Date() 只能識(shí)別 2018/07/26 14:58:32 格式的字符串來(lái)生成日期對(duì)象。
解決
既然ios下的new Date() 只能識(shí)別 2018/07/26 14:58:32 格式的,那么我們只需要把我們?cè)袷街械?- 替換為 /即可,即
var nowTimestamp = new Date().getTime();
var endTimestamp = new Date("2018-07-26 14:58:32".replace(/-/g,"/")).getTime();
var leftSeconds = endTimestamp - nowTimestamp;
console.log("當(dāng)前時(shí)間時(shí)間戳",nowTimestamp);
console.log("結(jié)束時(shí)間時(shí)間戳",endTimestamp);
console.log("差值",leftSeconds);