Calculating array of dates

2019-08-23 13:44发布

I'm trying to convert an array of days:

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

to an array of dates which are today +1 day , today +2 etc

I have:

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

I'm seeing

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

what am I doing wrong?

3条回答
Melony?
2楼-- · 2019-08-23 14:21

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

查看更多
叛逆
3楼-- · 2019-08-23 14:23

The intervals are string, you need to get the day of today and add the interval after converting it to a number using +interval, so it would be now.getDate() + +intervals[i], then call new Date() on the result, and of course change the loop from i in intervals to a number range:

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

查看更多
聊天终结者
4楼-- · 2019-08-23 14:37
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')
}
查看更多
登录 后发表回答