yyyy-MM-dd HH:mm:ss is Invalid Date in Safari, IE等瀏覽器下

1、踩坑背景

在作某個項目的過程當中,系統要求兼容safari,在使用Element-ui狀況下,用到了datepicker組件,可是datepicker在type爲daterange狀況下,頁面首次加載給日期組件賦初值,可是變量是有值,視圖沒有展現出來。 因而在解決這個問題的過程當中,我在github上找到了初步的解決辦法:https://github.com/kenberkeley/fix-date。 引入fix-date這個模塊,可能仍是有點問題。git

2、問題的根源

由於本身開發環境不是Mac,因此沒有safari瀏覽器。以前一直覺得是Element-ui日期組件自己的問題,其實並非。問題出在safari瀏覽器上,對於new Date(),這個方法所接受的參數,不能是'2019-02-27 23:59:59'格式,還有些不兼容的格式,你們能夠有空本身在safari瀏覽器下試驗下。因此在使用new Date('2019-2-27 23:59:59')致使自己解析出來的是NaN-NaN-NaN NaN:NaN:NaN,因此Element-ui日期組件上纔不會顯值。改了以後,發現日期組件仍是沒有顯示出來。結果是由於傳給日期組件的日期格式也有必定的問題。不能傳遞'2019-2-27 23:59:59',能夠參考value4: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)],element-ui官網的賦值方式來賦值。這時候就沒什麼問題。github

#3、解決辦法。npm

1.fix-date(一個npm模塊,能夠去npm.js上下載)

https://github.com/kenberkeley/fix-date/blob/master/README.md 按照這個地址上面的方法使用,即可以解決。(有可能針對某些版本的safari瀏覽器可能無效)element-ui

2.對問題的根源作解決

對於new Date('2019-02-27 23:59:59')這種格式,safari不兼容,因此要將xxxx-xx-xx的時間格式,轉換爲 xxxx/xx/xx的格式 。瀏覽器

'2019-02-27 23:59:59'.replace(/-/g,'/'))

對於初始化日期組件,沒有顯示的問題,解決參考element-ui官網的方式:ui

value4: [new Date(2000, 10, 10, 10, 10), new Date(2000, 10, 11, 10, 10)]
相關文章
相關標籤/搜索