蘋果瀏覽器 時間格式 兼容問題的坑 最後給一個非常完美的字符串轉Date對象的函數

很多人知道如下寫法來兼容蘋果瀏覽器,但是其實這個寫法也是有問題的

  function praseTime(time){
 let date = new Date(time.replace(/-/g,'/'))
 return date;
 };

因爲 像這樣的時間格式 2009-12-28T00:00:00.000+00:00 用/替換-後,是無法再轉換爲Date的。
如圖

最後還有一個坑 date == 'Invalid Date'是不全面的,有時候date會NaN;我現在無法重現了。但是調試代碼中的確遇到過這個辛苦

   date = new Date(time)
  if (date == 'Invalid Date') return time;// date == 'Invalid Date'是不全面的,有時候date會NaN

最後給一個非常完美的字符串轉Date對象的函數

      //字符串轉Date
      function parseDate(time) {
        if (!time) {
          return {};
        }

           if (time instanceof Date) {
           return time;
          }

             if (typeof time !== "string") {
               return {};
              }

              let date = new Date(time);
                if (date.getDay() === "NaN") {
                /**考慮是蘋果瀏覽器不兼容的情況 */
                 date = new Date(time.replace(/-/g, "/"));
                   /**還是NaN 考慮是不合法的時間字符串 */
                           if (date.getDay() === "NaN") {
                   return {};
              }
                  }

               return date;
              }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章