知識點(diǎn):
因?yàn)?nbsp;
JS中要求Date類型轉(zhuǎn)換的原始數(shù)據(jù)格式是yyyy/mm/dd之類的,所以橫崗 - 要替換掉才可以今天同事來問,我一看果然啊,mac版高級的safari 沒問題,就老版本的 safari5.0 及以下有問題,然后聰明如我,搜了一下關(guān)鍵字, new Data safari 就行了,出來一堆前人查詢過的記錄,然后就解決了,換個(gè)寫法嘛!下面總結(jié)是摘自 網(wǎng)絡(luò)其他博客 集體總結(jié),我拿來記錄一下,供人參考Date構(gòu)造器有多種方式創(chuàng)建方式
一、new Date()
12 | // 當(dāng)天 var date = new Date() |
二、new Date(value)
12345 | // value 為一個(gè)整數(shù) var date = new Date(1411616202925) var year = date.getFullYear() // 2014 var month = date.getMonth() // 8 var today = date.getDate() // 25 |
value為毫秒數(shù)(整數(shù))可以通過Date.now()生成一個(gè),也可以通過Date.parse()轉(zhuǎn)換得到。
三、new Date(dateString)
12 | 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)
12 | var birthday = new Date(2014, 8, 25) var birthday = new Date(2014, 8, 25,15, 24, 0) |
對于第二種方式構(gòu)造Date對象,有時(shí)只需要獲取日期,我們常用這種格式 "2014-09-25",比如
1234 | var date = new Date( '2014-09-25' ) date.getFullYear() // 2014 date.getMonth() // 8 (月是0-11) date.getDate() // 25 |
這段代碼在多數(shù)瀏覽器中沒有問題,但在win Safari5及以下版本中會顯示NAN。Mac上Safari7則沒有此問題。
這種格式規(guī)范里是允許的
需注意,為避免這種問題需要使用其他構(gòu)造方式創(chuàng)建Date對象。
相關(guān):
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
掃描長按二維碼,關(guān)注我的公眾號
新聞熱點(diǎn)
疑難解答