Javascript 以年为单位向日期添加天数
我想给一个日期加上几天,然后在一段时间内增加这个日期。我有相同的时间跨度问题锁定,但我有一个问题,试图使日期增量正确我知道getDate()+7是错误的,我不想使用插件。有什么想法吗?主要的问题是,如果一年中的日期超过一圈,那么它将始终采用当前年份,我猜这是因为我是如何实例化日期的。如果我问的不清楚,我可以回答你的问题Javascript 以年为单位向日期添加天数,javascript,.net,date,extjs,coffeescript,Javascript,.net,Date,Extjs,Coffeescript,我想给一个日期加上几天,然后在一段时间内增加这个日期。我有相同的时间跨度问题锁定,但我有一个问题,试图使日期增量正确我知道getDate()+7是错误的,我不想使用插件。有什么想法吗?主要的问题是,如果一年中的日期超过一圈,那么它将始终采用当前年份,我猜这是因为我是如何实例化日期的。如果我问的不清楚,我可以回答你的问题 var last, packEndDate, packStartDate; while (i < frequencyValue) { packStartDate =
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++;
}
var last、packEndDate、packStartDate;
而(i<频率值){
packStartDate=新日期();
packEndDate=新日期();
调试器;
如果(每周){
packStartDate.setDate(startDate.getDate()+(7*i));
packEndDate.setDate(packStartDate.getDate()+7);
}否则{
packStartDate.setDate(startDate.getDate()+(30*i));
packEndDate.setDate(packStartDate.getDate()+30);
}
last=频率值-1;
如果(i==最后一个){
packEndDate=结束日期;
}
}
i++;
}
您可以根据1970年1月1日00:00:00 UTC以来的毫秒数创建新的日期对象。由于设置了一分钟、一小时、一天、一周的毫秒数,因此我们可以向当前时间添加一个固定量,以获得未来的时间。我们可以忘记一个月或一年中的哪一天,因为它是自1970年以来固有的毫秒数
我不确定您在循环中要做什么,但如果您想将某一天增加一定的天数,可以执行以下操作:
var numberOfDaysToIncrement = 7;
var offset = numberOfDaysToIncrement * 24 * 60 * 60 * 1000;
var date = new Date();
var dateIncremented = new Date(date.getTime() + offset);
使用extjs
在Ext.Date对象中使用add方法。参考:
例如:Ext.Date.add(新日期('10/29/2006'),Ext.Date.DAY,5) 修改了我的代码,使其看起来像这样
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++
packagesToAdd=[]
packStartDate=新日期()
packEndDate=新日期()
而我<频率值
如果是星期
toIncrementWeekly=7*i
偏移量=至增量*24*60*60*1000
packStartDate=新日期(startDate.getTime()+偏移量)
packEndDate.setDate(packStartDate.getDate()+7)
其他的
toIncrementMonthly=30*i
偏移量=每月增加*24*60*60*1000
packStartDate=新日期(startDate.getTime()+偏移量)
packEndDate.setDate(packStartDate.getDate()+30)
last=频率值-1
如果我=最后一个
packEndDate=endDate
数字=('0'+i).slice(-2)
我++
工作很出色。谢谢,dmlittle效果很好。最后使用它非常简单。适应它需要一些时间。很好地使用api文档。这很容易,但同时也很痛苦。