知识点:

new Date


问题: safari浏览器 显示 NaN


因为 

JS中要求Date类型转换的原始数据格式是yyyy/mm/dd之类的,所以横岗 - 要替换掉才可以


今天同事来问,我一看果然啊,mac版高级的safari 没问题,就老版本的 safari5.0 及以下有问题,然后聪明如我,搜了一下关键字, new Data safari 就行了,出来一堆前人查询过的记录,然后就解决了,换个写法嘛!


下面总结是摘自 网络其他博客 集体总结,我拿来记录一下,供人参考

Date构造器有多种方式创建方式

 

一、new Date()

// 当天
var date = new Date()

 

二、new Date(value)

1
2
3
4
5
// 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​​​和ECMAScript​​15.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则没有此问题。

关于 safari浏览器 不支持new Date 显示NaN的问题记录_JavaScript

这种格式规范里是允许的

关于 safari浏览器 不支持new Date 显示NaN的问题记录_new Date_02

 

需注意,为避免这种问题需要使用其他构造方式创建Date对象。

 

关注我的公众号 

关于 safari浏览器 不支持new Date 显示NaN的问题记录_safari_03