new Date("2018-09-9").toISOString()
这给出了2018-09-09T04:00:00.000Z
为
new Date("2018-09-19").toISOString()
给"2018-09-19T00:00:00.000Z"
我来自美国,所以4:00:00
似乎是正确的UTC时间,但是如果我提供的日期大于9,那么00:00:00
就是我错过了什么吗?
答案 0 :(得分:1)
这是正确的行为。请参阅Javacript日期参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
注意:由于浏览器的差异和不一致,强烈建议不要使用Date构造函数(和Date.parse,它们等效)来解析日期字符串。仅按照约定,对RFC 2822格式字符串的支持。对ISO 8601格式的支持有所不同,因为仅日期字符串(例如“ 1970-01-01”)被视为UTC,而不是本地。
您的第二个版本正在使用ISO 8601格式YYYY-MM-DD
格式,该格式被视为UTC。如果您在第一个示例中使用2018-09-09
而不是2018-09-9
,它将也被视为UTC而不是本地时间。