0

我在 Javascript 中进行日期操作时遇到了一些麻烦。

我有一个变量,firstDay即我正在操作的日期。

firstDay我从一个变量添加天X数,从另一个变量添加天Y数:

var from_date = new Date(firstDay); // firstDay is a string with date: 2012/07/28
var to_date = new Date(firstDay);

var X = 1;
var Y = 5;

from_date.setDate(from_date.getDate() + X);
to_date.setDate(to_date.getDate() + Y);

所以from_date现在包含日期 29.07.2012 和 to_date 是 02.08.2012。我不知道为什么日期会正确更改,但月份保持不变。

我哪里做错了?

4

2 回答 2

1

复制并粘贴您的代码,它按预期工作:http: //jsfiddle.net/kDYdW/4/

唯一的区别是firstDay,所以我认为您可能对此有疑问。

您还说“月份保持不变”,但您报告在(29.07.2012 和 02.06.2012)有 7 月from_date和 6 月。to_date

更新:添加了 jsfiddle 的正确修订

于 2012-07-28T11:32:22.557 回答
1

setDate(d)只是为给定的月份设置月份的日期(而例如setMonth(m)只是更改月份)。

您可能希望使用setTime(t)which 设置完整的时间戳,假设XY是天:

from_date.setTime(from_date.getTime() + (X * 24 * 60 * 60 * 1000));
to_date.setTime(to_date.getTime() + (Y * 24 * 60 * 60 * 1000));
于 2012-07-28T11:32:46.110 回答