【发布时间】:2019-01-02 15:23:50
【问题描述】:
我正在使用 JS 函数来读取格式如下的 JSON:
{
"metrics": {
"2018-12-28 12:00:00": {
"20": 19
},
"2018-12-28 13:00:00": {
"20": 76
},
"2018-12-28 14:00:00": {
"20": 39
}
} }
从此文件中,我正在创建一个新对象,其日期为“2018-12-28”格式,编号为“20”。这是函数:
let op = {}
for(let key in names){
let temp = new Date(key);
let fullDate = temp.getFullYear()+'-'+temp.getMonth()+'-'+temp.getDate();
if(op[fullDate]){
for(let val in names[key])
{
if(op[fullDate][val])
op[fullDate][val] += names[key][val]
else op[fullDate][val] = names[key][val]
}
} else {
op[fullDate] = {...names[key]};
}
}
问题是该函数输出的日期比“2018-11-28”晚一个月(“2018-11-28”而不是“2018-12-28”),我终生无法弄清楚原因。非常感谢任何帮助。
【问题讨论】:
-
从 0 开始计数而不是从 1 开始计数?
-
请注意,在 Safari 中,
new Date("2018-12-28 12:00:00")会生成无效的日期。强烈建议不要使用内置解析器。
标签: javascript json date