使用setDate添加天数后,月份不变

After add days using setDate, month does no change

本文关键字:setDate 添加 使用      更新时间:2024-04-20

我在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现在包含日期2012年7月29日,截止日期为2012年8月2日。我不知道为什么日期会有适当的变化,但几个月都是一样的。

我哪里做错了?

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

唯一的区别是firstDay,所以我想你可能对此有问题。

你也说"月份不变",但你报告说from_date有7月,to_date有6月(2012年7月29日和2012年6月2日)

更新:添加了jsfiddle 的适当修订

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

您可能想要使用setTime(t)来设置完整的时间戳,假设XY是天:

from_date.setTime(from_date.getTime() + (X * 24 * 60 * 60 * 1000));
to_date.setTime(to_date.getTime() + (Y * 24 * 60 * 60 * 1000));