JavaScript新日期与字符串参数有错误的日期
这个问题在这里已经有了答案:
Date.toString()
在您的本地时区格式化,但由于您已传入ISO-8601字符串,因此该值将被解析为好像它是UTC。
从Date.parse()
文档(如Date(String)
构造函数被记录为Date.parse
):
日期时间字符串可以采用简化的ISO 8601格式。 例如,可以传递和解析“2011-10-10”(刚刚日期)或“2011-10-10T14:48:00”(日期和时间)。 如果字符串仅为ISO 8601日期,则UTC时区用于解释参数。 如果字符串是ISO 8601格式的日期和时间,则它将被视为本地。
所以,你会得到一个结束Date
00:这相当于2017-12-06T00 00Z。 但是Date.toString()
会在您当前的时区即时显示出来 - 如果您在America / New_York或类似的时区,那时UTC的时间比UTC晚5小时,这意味着它会打印12月5日晚上7点。