Google apps script Google脚本--为日期添加天数

Google apps script Google脚本--为日期添加天数,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我意识到这很容易,但我是一个挣扎的新手。我在电子表格单元格D3、D4和D5(mm/dd/yyyy)中有日期,只需要一个宏就可以为每个单元格添加7天。我已经设法拼凑出一些可能正常工作的代码,但输出是毫秒格式,而不是mm/dd/yyyy格式 我似乎无法获得正确的语法来转换它。有什么提示吗?谢谢大家! function UpdateDates() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActive

我意识到这很容易,但我是一个挣扎的新手。我在电子表格单元格D3、D4和D5(mm/dd/yyyy)中有日期,只需要一个宏就可以为每个单元格添加7天。我已经设法拼凑出一些可能正常工作的代码,但输出是毫秒格式,而不是mm/dd/yyyy格式

我似乎无法获得正确的语法来转换它。有什么提示吗?谢谢大家!

function UpdateDates() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  var First = new Date();
  var Second = new Date();
  var Third = new Date();

  var First = ss.getRange('D3').getValue();
  var Second = ss.getRange('D4').getValue();
  var Third = ss.getRange('D5').getValue();


  ss.getRange('D3').setValue(First.getTime() + 7);
  ss.getRange('D4').setValue(Second.getTime() + 7);
  ss.getRange('D5').setValue(Third.getTime() + 7);

}

将日期添加到日期提供了一个独特的挑战,主要是因为您必须考虑年、月和日期。并相应地增加每个值,因此仅使用不起作用。你需要记录月份和年份。因此,如果加上七天会改变月份或年份,则会对其进行更改

但是,通过使用,您可以获得自1970年1月1日以来以毫秒为单位的时间度量。并且,以毫秒为单位添加7天,并使用构造函数将其转换回日期。因此,建造师需要根据时间计算出正确的日期

您的代码如下所示:

function UpdateDates() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  //Get the dates from the cell and convert them into Milliseconds since 1970/01/01
  var First = new Date(ss.getRange('D3').getValue()).getTime();
  var Second = new Date(ss.getRange('D4').getValue()).getTime()
  var Third = new Date(ss.getRange('D5').getValue()).getTime();
  var dayInMs = 24*60*60*1000    //one day in Milliseconds
  //add sevendays to each date in milliseconds

  First = First + (7*dayInMs)
  Second += (7*dayInMs)
  Third += (7*dayInMs)

  //Convert Milliseconds to date use new Date(time in ms) and set Values of the cell
  ss.getRange('D3').setValue(new Date(First));
  ss.getRange('D4').setValue(new Date(Second));
  ss.getRange('D5').setValue(new Date(Third));

}

我现在意识到问题的一部分(除其他外)是我使用了getTime而不是getDate。更改后,格式很好,但日期几乎不准确(杰克——非常感谢!从逻辑上讲,这一切都是有道理的。我一直在努力学习语法,但可以将其作为未来需求的良好起点。我使用Excel VBA变得“危险”,但很难使用Google脚本。再次感谢!