【发布时间】:2013-11-11 15:38:37
【问题描述】:
我从今天开始计算日期前 12 天。但它不会返回正确的日期。 例如,对于今天 dat,11/11/2013 in (mm/dd/yyyy),它返回 10/30/2013,而它应该返回 10/31/2013。
这里是代码
var d = new Date();
d.setDate(d.getDate() - 12);
d.setMonth(d.getMonth() + 1 - 0);
var curr_date = d.getDate();
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
if (curr_month < 10 && curr_date < 10) {
var parsedDate = "0" + curr_month + "/" + "0" + curr_date + "/" + curr_year;
alert(parsedDate);
} else if (curr_month < 10 && curr_date > 9) {
var parsedDate = "0" + curr_month + "/" + curr_date + "/" + curr_year;
alert(parsedDate);
} else if (curr_month > 9 && curr_date < 10) {
var parsedDate = curr_month + "/" + "0" + curr_date + "/" + curr_year;
alert(parsedDate);
} else {
var parsedDate = curr_month + "/" + curr_date + "/" + curr_year;
alert(parsedDate);
}
【问题讨论】:
-
一句话:moment.js
-
检查你的数学,12 天前是 10 月 30 日。
-
不是你的问题的一部分,但你为什么要在
d.setMonth(d.getMonth() + 1 - 0);中减去 0 -
12 天前是 10 月 31 日
-
@ozil 我明白了,但是你减去 0 是没有意义的。这是相同的值。为什么不直接做
d.setMonth(d.getMonth() + 1);
标签: javascript date