我希望将日期添加到日期,然后在一段时间内增加该日期。我有相同的时间跨度问题锁定但我有一个问题,试图正确使日期增量我知道getDate()+ 7是错误的,我不想使用插件。有任何想法吗?主要问题是,如果一年中的日期总是需要当年,那么我认为这是因为我如何实例化日期。如果我问的不清楚,我可以回答你的问题。
var last, packEndDate, packStartDate;
while (i < frequencyValue) {
packStartDate = new Date();
packEndDate = new Date();
debugger;
if (isWeek) {
packStartDate.setDate(startDate.getDate() + (7 * i));
packEndDate.setDate(packStartDate.getDate() + 7);
} else {
packStartDate.setDate(startDate.getDate() + (30 * i));
packEndDate.setDate(packStartDate.getDate() + 30);
}
last = frequencyValue - 1;
if (i === last) {
packEndDate = endDate;
}
}
i++;
}
答案 0 :(得分:1)
您可以根据自1970年1月1日00:00:00 UTC以来的毫秒数创建新的Date对象。由于设置了分钟,小时,天,周的毫秒数,因此我们可以将固定数量添加到当前时间以便在将来获得时间。我们可以忘记自1970年以来经过的毫秒数内所固定的月份或年份。
我不确定您在循环中尝试做什么,但如果您想将特定日期增加一定天数,则可以执行以下操作:
var numberOfDaysToIncrement = 7;
var offset = numberOfDaysToIncrement * 24 * 60 * 60 * 1000;
var date = new Date();
var dateIncremented = new Date(date.getTime() + offset);
答案 1 :(得分:1)
使用extjs
在Ext.Date对象中使用add方法。参考:http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.Date-method-add
例如:Ext.Date.add(新日期(&#39; 10/29/2006&#39;),Ext.Date.DAY,5);
答案 2 :(得分:1)
修改了我的代码,看起来像这样。
packagesToAdd = []
packStartDate = new Date()
packEndDate = new Date()
while i < frequencyValue
if isWeek
toIncrementWeekly = 7 * i
offset = toIncrementWeekly * 24 * 60 * 60 * 1000
packStartDate = new Date(startDate.getTime() + offset)
packEndDate.setDate(packStartDate.getDate() + 7)
else
toIncrementMonthly = 30 * i
offset = toIncrementMonthly* 24 * 60 * 60 * 1000
packStartDate = new Date(startDate.getTime() + offset)
packEndDate.setDate(packStartDate.getDate() + 30)
last = frequencyValue - 1
if i == last
packEndDate = endDate
number = ('0' + i).slice(-2)
i++
工作惊人。谢谢dmlittle