ios new Date("2016-07-18 14:58:32") 返回值為Invalid Date兼容問題

背景

最近一個項目要做一個倒計時功能(如下圖),自然首要的是想到用結束時間時間戳 - 當前手機時間時間戳,然后由得到的差值計算還剩 N天N小時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("當前時間時間戳",nowTimestamp);
  console.log("結束時間時間戳",endTimestamp);
  console.log("差值",leftSeconds);
PC端輸出

問題描述 : PC端調試頁面,發現一切是那么的順利,計算出了準確的時間戳。可是(OK,there is always a but );是的當我把這個頁面,在手機端查看時,發現安卓正常,但是 ios呢卻是NaN

ios時間戳獲取演示

原因

原來當我獲取結束時間時間戳時,new Date("2018-07-26 14:58:32"); 返回 Invalid Date(錯誤的時間格式),用錯誤的時間對象再去獲取時間戳,自然是 NaN, ios 下的 new Date() 只能識別 2018/07/26 14:58:32 格式的字符串來生成日期對象。

解決

既然ios下的new Date() 只能識別 2018/07/26 14:58:32 格式的,那么我們只需要把我們原格式中的 - 替換為 /即可,即

  var nowTimestamp = new Date().getTime();
  var endTimestamp = new Date("2018-07-26 14:58:32".replace(/-/g,"/")).getTime();
  var leftSeconds = endTimestamp - nowTimestamp;
  console.log("當前時間時間戳",nowTimestamp);
  console.log("結束時間時間戳",endTimestamp);
  console.log("差值",leftSeconds);
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,504評論 0 13
  • 文章圖片上傳不正常,如需文檔,可聯系微信:1017429387 目錄 1 安裝... 4 1.1 配置探針... ...
    Mrhappy_a7eb閱讀 6,430評論 0 5
  • 1、今天跑步有終于有了一個小突破——在1小時之內跑完10公里!值得開心!況且一口氣跑了15公里,還算不錯的成績! ...
    Phanleys閱讀 198評論 0 1
  • 題目1: HTML 5是什么?有哪些新特性?有哪些新增標簽?如何讓低版本的 IE 支持 HTML5新標簽 HTML...
    饑人谷_zhangfan閱讀 211評論 0 0
  • 現在的我,很迷茫,或許一直在迷茫吧,在想自己以后到底做什么?目前在大學選的是市場營銷專業,選這個專業時,有三個原因...
    語言加油Y閱讀 304評論 9 5