为日期添加天数 - Google Script

mEC*_*ECH 9 google-sheets google-apps-script

我无法弄清楚如何在Google Script的Google表格中添加日期.

for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var car = row[1];
    var date = row[2];

if ((car == "Car1") || (car == "Car2")) {
        var newDay = new Date(date + 154);
        Logger.log(newDay);
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用new Date(date.add({days: 154})); 但是会抛出一个关于没有找到add()对象的错误.

我认为这可能是一个格式问题,在Sheets格式中7/26/2014.

Ser*_*sas 19

可能有很多方法可以做到这一点,其中有2个

  1. 知道JavaScript Date的原生值是毫秒,您可以n为此本机值添加3600000*24毫秒的时间,n即天数.
  2. 或者您可以获取日期值,添加n到此值并使用该值重建日期.为了得到一天只需使用getDate().查看JS日期文档在这里.

下面是一个简单的演示函数,它使用两种方法并在记录器中显示结果:

function myFunction() {
  var data = SpreadsheetApp.getActive().getActiveSheet().getDataRange().getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var car = row[1];
    var date = new Date(row[2]); // make the sheet value a date object
    Logger.log('original value = '+date);
    Logger.log('method 1 : '+new Date(date.getTime()+5*3600000*24));
    Logger.log('method 2 : '+new Date(date.setDate(date.getDate()+5)));
  }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述