我尝试使用下面的代码来获取某个日期的先前日期:
XClick | ocr=Record Video
我希望此代码返回:“ rec_data[0] = 0x04;
while (1)
{
//reception data
HAL_I2C_Master_Transmit(&hi2c1, 0xD0, i2cData, 1, 10);
HAL_Delay(500);
HAL_I2C_Master_Receive(&hi2c1, 0xD0, rec_data, 1, 10);
HAL_Delay(500);
}
”。
但它返回:'var d = new Date("2019","12","21");
d.setDate(d.getDate() - 1 );
alert(d.getFullYear()+"-"+d.getMonth()+"-"+d.getDate());
'。
有人可以解释为什么此代码如此工作吗? 以及如何修改我的代码以获取以前的日期?
答案 0 :(得分:5)
月份从零开始。 0是1月,11是12月,因此12又是1月。您将从1月21日到1月20日。
要使用一个月为基础的月份,将值插入日期时必须递减,而从日期中读取则必须递增:
// v
const date = new Date(2019, 12 - 1, 21);
date.setDate(date.getDate() - 1);
// v
console.log(date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate());
答案 1 :(得分:0)
我有更简单的方法来获取新日期,例如:
let preDate = new Date((new Date(2019, 12 - 1, 21).getTime()-24*3600))
console.log(preDate.getFullYear() + "-" + (preDate.getMonth() + 1) + "-" + preDate.getDate());