javascript setDate从7月31日到8月30日的30个月内减少了1个月

时间:2017-08-01 19:57:38

标签: javascript date datetime

我有以下代码让我头晕目眩。

structureOutputDescriptor

今天是8月1日。我点击了var forDt = new Date("2017-07-31"+ "T09:00:00.000"); var workDt = new Date(); workDt.setDate(forDt.getDate() - 1); date_prev = workDt.toISOString().slice(0, 10); 按钮两次,PrevdatePrev更改为July 31

有人可以帮忙告诉我出了什么问题吗?似乎August 30.设置了setDate(),但没有更新月份。无论如何要解决它吗?

谢谢你们。=)

1 个答案:

答案 0 :(得分:0)

您正在创建new Date(),因为workDt将引用系统的当前日期。

var forDt = new Date("2017-07-31" + "T09:00:00.000");
var workDt = new Date(forDt.getTime());
workDt.setDate(forDt.getDate() - 1);
date_prev = workDt.toISOString().slice(0, 10);

console.log(date_prev);

workDt.setDate(workDt.getDate() - 1);
date_prev = workDt.toISOString().slice(0, 10);

console.log(date_prev);

通过使用new Date(forDt.getTime())设置workDt,您可以复制要减少的日期,并在设置月份的日期之后,您将得到正确的答案

相关问题