最近做一個h5時間段展示界面,需要將日期格式轉爲毫秒進行處理,本人用的Android手機與google瀏覽器調試,一切顯示正常,但是當同事用蘋果手機測試的時候發現顯示不出來,於是調試了一下發現所有日期轉出來的毫秒值都是0.問了萬能的度娘後發現已經有同僚遇到過此類問題了
就是Safari不認識“2019-11-22”這個格式,認識“2019/11/22”這種日期格式(同事說IE瀏覽器也是這樣),於是我也將我的日期格式(“2019-11-22”)轉了一下,
但是發現還不行,因爲我們後臺返回的時間格式是“2019-11-22T10:00:00”,我想會不會是“T”也不認識,於是嘗試將“T”替換成空格,保存,測試,一切正常了。
在此記錄一下,希望有遇到類似情況的同僚能更快的處理同類問題。時間轉毫秒值修改後方法如下:
/**將日期字符串轉爲毫秒值
* @param {Object} dateStr
*/
this.getTimeByDateStr=function(dateStr){
var t=0;
try{
//將日期2019-11-22T10:00:00格式轉爲2019/11/22 10:00:00
var dstr=dateStr.toString().replace(/-/g,'/').replace(/T/gi," ");
t=new Date(dstr).getTime();
}catch(e){
//TODO handle the exception
}
return t;
}
順便提一下:.replace(/-/g,'/').replace(/T/gi," "),這裏的:
1.replace(/-/g,'/'),/-/g是正則表達式,兩個/中間的‘-’是要替換的內容,g是替換數據中所有的‘-’,global的意思;
2.replace(/T/gi," "),表示將數據中所有T替換爲空格,i是不區分大小寫,ignore的意思;
3.正則表達式標誌,如g,i,m等可以單獨使用,也可以組合使用。