javascript 1 day

javascript 1 day

本文关键字:day javascript      更新时间:2023-09-26

我有一个数组,里面有一些日期:

periods[i].start
periods[i].ende

最初我填充开始日期。然后我想计算结束日期,像这样:

periods[i].ende = periods[i+1].start - 1 day

如此:

periods[i].ende = periods[i+1].start;

但是怎么做:-1天?

谢谢!

编辑:它不是这个的副本。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,再次感谢!

这里有一种方法。这将设置除最后一个之外的每个结束日期。因为没有日期可以计算。

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)

建议使用moment.js库。然后输入

moment.subtract('days', 1);