纯牛奶645
纯牛奶645
  • 发布:2018-06-01 17:56
  • 更新:2018-06-01 17:56
  • 阅读:2350

js new Date

分类:Native.js

new Date()对参数不管是格式还是内容都要求,且只返回字符串

new Date();  
//Fri Aug 21 2015 15:51:55 GMT+0800 (中国标准时间)  
new Date(1293879600000);  
new Date('2011-01-01T11:00:00')  
new Date('2011/01/01 11:00:00')  
new Date(2011,0,1,11,0,0)  
new Date('jan 01 2011,11 11:00:00')  
new Date('Sat Jan 01 2011 11:00:00')  
//Sat Jan 01 2011 11:00:00 GMT+0800 (中国标准时间)  
new Date('sss');  
new Date('2011/01/01T11:00:00');  
new Date('2011-01-01-11:00:00')  
new Date('1293879600000');  
//Invalid Date  
new Date('2011-01-01T11:00:00')-new Date('1992/02/11 12:00:12')  
//596069988000

从上面几个测试结果可以很容易发现

new Date()在参数正常的情况只会返回当前时间的字符串(且是当前时区的时间)
new Date()在解析一个具体的时间的时候,对参数有较严格的格式要求,格式不正确的时候会直接返回Invalid Date,比如将number类的时间戳转换成string类的时候也会导致解析出错
虽然new Date()的返回值是字符串,然而两个new Date()的结果字符串是可以直接相减的,结果为相差的毫秒数。
那么,new Date()能接受的参数格式到底是什么标准呢?(相对于严格要求的多参数传值方法。非严格的单参数(数字日期表示格式)更常用且更容易出错,所以下文只考虑单参数数字时间字符串转换的情况)
参考:http://chitanda.me/2015/08/21/the-trivia-of-js-date-function/

0 关注 分享

要回复文章请先登录注册