我正在使用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-12-28”),而我一生都无法找出原因。任何帮助表示赞赏。
答案 0 :(得分:2)
请参阅:https://www.w3schools.com/jsref/jsref_getmonth.asp
月份是从0开始的,因此一月是0,十二月是11。
答案 1 :(得分:2)
getMonth()
从零开始。您只需要加1即可获得所需的结果。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth