IE瀏覽器new Date()帶參返回undefined解決方法


問題描述

   今天給網站增加統計功能,其中一個功能為網站運行時間

此功能通過當前時間建站時間算差后計算網站運行時間為n年n天n時n分n秒,代碼寫完后測試瀏覽器顯示效果時發現,非IE瀏覽器內核均正常顯示,IE瀏覽器下顯示效果的時候發現結果顯示為:undefined年undefined天undefined時undefined分undefined秒

   經過排查,發現在IE11下,new Date("2017-09-01 15:16:16")返回undefined。

解決問題

方法一:自定義方法

    自定義一個NewDate方法:

function NewDate(str){  
  if(!str){  
    return 0;  
  }  
  arr=str.split(" ");  
  d=arr[0].split("-");  
  t=arr[1].split(":");  
  var date = new Date();   
  date.setUTCFullYear(d[0], d[1] - 1, d[2]);   
  date.setUTCHours(t[0], t[1], t[2], 0);   
  return date;  
}  

 

 方法二:通過Date.parse()方法

 ' 2017-09-01 15:16:16'是無法被各個瀏覽器中,使用new Date(str)來正確生成日期對象的。 正確的用法是' 2017/09/01 15:16:16'。

基於'/'格式的日期字符串,才是被各個瀏覽器所廣泛支持的,‘-’連接的日期字符串,則是只在chrome下可以正常工作。

var timestart = new Date(Date.parse('2017-09-01 15:16:16'.replace(/-/g,"/")))

參照:https://blog.csdn.net/wqiancangq/article/details/52484806


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM