1 var date = new Date('2016-11-11 11:11:11'); 2 document.write(date);
最近在寫一個時間判斷腳本,須要將固定好的字符串時間轉換爲時間戳進行比較,在作的時候我的習慣使用chrome做爲調試工具,android
代碼基本完成以後,一切正常;程序員
使用其餘瀏覽器訪問,好嘛,IE跟safari都不兼容,返回錯誤"Invalid Date"。chrome
想着估計是字符串格式的問題,改爲'2016/11/11 11:11:11'再測試,結果正常,覺得這樣應該沒問題了,再用手機瀏覽器繼續訪問,android正常,iPhone繼續報錯,瀏覽器
再改"Nov 11 2016 11:11:11",照樣報錯,怎麼改都不行工具
絞盡腦汁,最後仍是在論壇上看到了這樣一種解決方案:測試
1 var arr = "2016/11/11 11:11:11".split(/[- : \/]/), 2 date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]); 3 document.write(date);
終於能夠兼容全部瀏覽器咯,結論:spa
iPhone中的safari沒法解釋 YYYY-MM-DD HH:mm:ss 或者YYYY/MM/DD HH:mm:ss這樣的時間格式,而谷歌火狐等瀏覽器對這樣的格式作了擴展,調試
iPhone中的safari所支持的格式爲 YYYY,MM, DD,HH,mm,ss,這個問題糾結我大半天,真的好想把蘋果的程序員拉出去槍斃10分鐘,太TM特立獨行了。氣人code