我在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。我不知道为什么日期变化得当,但月份保持不变。
我做错了什么?
答案 0 :(得分:1)
复制&粘贴了您的代码,它按预期工作:http://jsfiddle.net/kDYdW/4/
唯一的区别是firstDay
,所以我认为你可能有问题。
你也说'#34;月保持不变"但据报道,7月份from_date
和6月份to_date
(2012年7月29日和2012年6月2日)。
更新:添加了适当的jsfiddle修订版
答案 1 :(得分:1)
setDate(d)
只设置指定月份的某一天(例如setMonth(m)
只更改月份)。
您可能希望使用设置完整时间戳的setTime(t)
,假设X
和Y
为天:
from_date.setTime(from_date.getTime() + (X * 24 * 60 * 60 * 1000));
to_date.setTime(to_date.getTime() + (Y * 24 * 60 * 60 * 1000));