我有一些日期的数组:
periods[i].start
periods[i].ende
最初我填写开始日期。然后我想计算结束日期,如下:
periods[i].ende = periods[i+1].start - 1 day
这有效:
periods[i].ende = periods[i+1].start;
但该怎么做:-1
天?
谢谢!
编辑:这不是this的重复。方法setDate适用于像YOURDATE这样的单个变量,但不适用于PERIODS [i] .ENDE之类的变量。差异 - 也许一个是参考,另一个是价值。 我用了这段代码:
function finalizePeriods() {
var tempDay;
for(var i=0; i<periods.length - 1; i++) {
tempDay = new Date(periods[i+1].start);
tempDay.setDate(tempDay.getDate() - 1);
periods[i].ende = tempDay;
}
}
MBottens,再次感谢!
答案 0 :(得分:1)
这是一种做法。这将设置除最后一个之外的每个结束日期。由于没有日期来计算它。
JS小提琴: http://jsfiddle.net/FGt4B/1/
var periods = [{start: "5/1/2014"}, {start: "5/8/2014"}, {start: "5/15/2014"}],
period, nextPeriod, tempDay
for ( var i = 0, _len = periods.length; i < _len; i++ ) {
period = periods[i]
nextPeriod = periods[i+1]
if ( nextPeriod ) {
tempDay = new Date(nextPeriod.start)
tempDay.setDate(tempDay.getDate() -1)
period.end = tempDay.toLocaleDateString()
}
}
console.log(periods)
答案 1 :(得分:0)
建议可能是使用moment.js库。然后只是
moment.subtract('days', 1);