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

console.log(newDate(0));
VM655237:1ThuJan01197008:00:00GMT+0800(中国标准时间)
console.log(newDate("0"));
VM655252:1SatJan01200000:00:00GMT+0800(中国标准时间)
收到一只叮咚
浏览 2612回答 2
2回答

慕桂英4014372

参数是字符串的时候,会使用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.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript