计算日期数组

时间:2017-09-02 12:57:39

标签: javascript google-apps-script

我正在尝试转换一系列天数:

['1','2','3','4','5']

到今天+1天的日期数组,今天+2等

我有:

interval_dates = []
var intervals =  rows[index+1][0].split(',')
var now = new Date();
for (i in intervals){
  // add a day
  interval_dates.push(now.setDate(now.getDate() + intervals[i]));
}
    Logger.log(interval_dates);

我正在看

[1.505998326018E12, 1.522500726018E12, 1.546869126018E12, 1.552654326018E12, 1.564750326018E12], ]

我做错了什么?

3 个答案:

答案 0 :(得分:1)

时间间隔为字符串,您需要获取今天的日期,并在使用+interval将其转换为数字后添加时间间隔,因此它将为now.getDate() + +intervals[i],然后调用new Date()在结果上,当然将循环从i in intervals更改为数字范围:

var intervals = ['1','2','3','4','5'];
var interval_dates = [];
var date;
for (var i=0; i<intervals.length; i++){
  // add a day
  date = new Date();
  interval_dates.push(new Date(date.setDate(date.getDate() + +intervals[i])));
}
console.log(interval_dates);

答案 1 :(得分:1)

&#13;
&#13;
var dateRange = [];

['1','2','3','4','5'].forEach(function(dayIncrement) {
  var date = new Date();
  date.setDate(date.getDate() + parseInt(dayIncrement));
  dateRange.push(date);
});

console.log(dateRange);
&#13;
&#13;
&#13;

答案 2 :(得分:1)

function arrayOfDays()
{
    var dayA=[1,2,3,4,5];
    var today=new Date().setHours(0,0,0,0);
    var day=24*60*60*1000;
    var days=[];
    for(var i=0;i<dayA.length;i++)
    {
      days.push(Utilities.formatDate(new Date(today + (i * day)), Session.getScriptTimeZone(), "MM/dd/yyyy"));
    }
    //Logger.log(days);
    var ui=HtmlService.createHtmlOutput('[' + days.join(', ') + ']');
    SpreadsheetApp.getUi().showModelessDialog(ui, 'Array of Days')
}