为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 JS 中的 new Date("0") 返回的是2000年,而不是1970年?

为什么 JS 中的 new Date("0") 返回的是2000年,而不是1970年?

收到一只叮咚 2019-07-06 22:54:04
console.log(newDate(0));VM655237:1ThuJan01197008:00:00GMT+0800(中国标准时间)console.log(newDate("0"));VM655252:1SatJan01200000:00:00GMT+0800(中国标准时间)
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

参数是字符串的时候,会使用Date.parse,而其中咋解释字符串"0"是实现自己定义的。这与参数是数字的时候完全不同。
TheparsefunctionappliestheToStringoperatortoitsargument.IfToStringresultsinanabruptcompletiontheCompletionRecordisimmediatelyreturned.Otherwise,parseinterpretstheresultingStringasadateandtime;itreturnsaNumber,theUTCtimevaluecorrespondingtothedateandtime.TheStringmaybeinterpretedasalocaltime,aUTCtime,oratimeinsomeothertimezone,dependingonthecontentsoftheString.ThefunctionfirstattemptstoparsetheStringaccordingtotheformatdescribedinDateTimeStringFormat(20.3.1.15),includingexpandedyears.IftheStringdoesnotconformtothatformatthefunctionmayfallbacktoanyimplementation-specificheuristicsorimplementation-specificdateformats.Stringsthatareunrecognizableorcontainout-of-boundsformatfieldvaluesshallcauseDate.parsetoreturnNaN.
                            
查看完整回答
反对 回复 2019-07-06
  • 2 回答
  • 0 关注
  • 2611 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信