javascript日期 - 1天

时间:2014-05-13 16:57:37

标签: javascript date

我有一些日期的数组:

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,再次感谢!

2 个答案:

答案 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);