Safari5及以下版本不支持Date的橫杠字符串格式


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

 

一、new Date()

// 當天
var date = new Date() 

 

二、new Date(value)

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

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

 

三、new Date(dateString)

var 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)

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

 

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

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

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

這種格式規范里是允許的

 

需注意,為避免這種問題需要使用其他構造方式創建Date對象。

 

相關:

http://tools.ietf.org/html/rfc2822#page-14

http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

 


免責聲明!

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



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