首页 > 解决方案 > 为什么 JavaScript 会错误地解析数据?

问题描述

有两件奇怪的事:

基本上我要做的是将原始数据格式转换为YYYY-MM-DD.

标签: javascript

解决方案


new Date('Dec 31, 2019')- 此日期将以您的本地时间格式显示。

例如:

`Tue Dec 31 2019 00:00:00 GMT+1100` (Your Standard Time)

但是,new Date('Dec 31, 2019').toISOString()- 此日期将显示为

2019-12-30T13:00:00.000Z. 这意味着 2019 年 12 月 31 日减去 11 小时(您的时区)。

另外,为了避免奇怪的行为,尽量明确地设置年、月、日,以避免奇怪的行为。

Date您应该按以下格式解析:

// yyyy-mm-dd format
// new Date(year, month [, day [, hours[, minutes[, seconds[, ms]]]]])
let yourDate = new Date(parts[0], parts[1]-1, parts[2]); // Be careful: months are 0-based

您可以在此处查看有效的日期时间。


推荐阅读