1. 程式人生 > >關於 safari瀏覽器 不支援new Date 顯示NaN的問題記錄

關於 safari瀏覽器 不支援new Date 顯示NaN的問題記錄

知識點:

new Date

問題: safari瀏覽器 顯示 NaN因為 
JS中要求Date型別轉換的原始資料格式是yyyy/mm/dd之類的,所以橫崗 - 要替換掉才可以
今天同事來問,我一看果然啊,mac版高階的safari 沒問題,就老版本的 safari5.0 及以下有問題,然後聰明如我,搜了一下關鍵字, new Data safari 就行了,出來一堆前人查詢過的記錄,然後就解決了,換個寫法嘛!
下面總結是摘自 網路其他部落格  集體總結,我拿來記錄一下,供人蔘考

Date構造器有多種方式建立方式

一、new Date()

12// 當天var date = new Date()

二、new Date(value)

12345// value 為一個整數var date = new Date(1411616202925)var year = date.getFullYear() // 2014var month = date.getMonth() // 8var today  = date.getDate() // 25

value為毫秒數(整數)可以通過Date.now()生成一個,也可以通過Date.parse()轉換得到。

三、new Date(dateString)

12var date1 = new Date("December 17, 2014 12:24:00")var date2 = new Date("2014-09-25T13:24:00"
)

dateString必須遵循RFC 2822和ECMAScript15.9.1.15

四、new Date(year, month, day, hour, minute, second, millsecond)

12var birthday = new Date(2014, 8, 25)var birthday = new Date(2014, 8, 25,15, 24, 0)

對於第二種方式構造Date物件,有時只需要獲取日期,我們常用這種格式 "2014-09-25",比如

1234var date = new Date('2014-09-25')date.getFullYear() // 2014date.getMonth() 
// 8 (月是0-11)date.getDate() // 25

這段程式碼在多數瀏覽器中沒有問題,但在win Safari5及以下版本中會顯示NAN。Mac上Safari7則沒有此問題。

這種格式規範裡是允許的

需注意,為避免這種問題需要使用其他構造方式建立Date物件。

相關:

掃描長按二維碼,關注我的公眾號