当我在chrome控制台中运行这段代码时,它显示了以下内容:
>new Date("1651214829629")
Invalid Date
>new Date(1651214829629)
Fri Apr 29 2022 14:47:09 GMT+0800 (中国标准时间)
>new Date("110")
Wed Jan 01 0110 00:00:00 GMT+0805 (中国标准时间)我不知道为什么"1651214829629"作为字符串是一个无效的日期,但1651214829629作为一个数字是好的。
发布于 2022-05-27 03:36:59
正如谢浩忠所说,如果你给new Date()一个字符串,它就会把它解释成dateString,而不是时间戳。要解析dateString,new Date()将调用Date.parse(),这在ECMAScript docs 这里中有详细说明。Date.parse()将第一次根据dateString解析日期时间字符串格式。日期时间字符串格式表示,如果您只提供一个数字,则该数字将被解释为年份,这通常在0-9999范围内(由ISO8601定义),但ECMAScript提供了一个扩展以支持此范围以外的年份,这将在扩大年份部分中详细说明。有了这一延长,年可在273,790至273,790之间。
所以,当你提供运行new Date("1651214829629")时,Chrome将1651214829629解释为一年。1651214829629不在可接受的范围内,因此它是一个无效日期。
发布于 2022-05-27 03:04:13
当您使用字符串时,new Date()会认为它是一个dateString而不是时间戳。"110"的意思是在1:10,它只是不明白什么是dateString of "1651214829629"。
https://stackoverflow.com/questions/72399903
复制相似问题