使用应用脚本向上移动日期,但返回不同的格式?

时间:2019-07-09 14:18:30

标签: google-apps-script

我正在运行一个脚本,该脚本将在每个单元格中向上移动一个日期。我希望它将所有选定的日期上移x天。当我运行该函数时,它可以工作,但是会更改日期格式:

“ J”只是简单的日期“ 7/9/2019”,而我正在尝试运行脚本(该脚本会将我的发票副本通过电子邮件发送给客户,该部分效果很好)

function updatePM(sheet, email){
  var value;
  var datevalue
  var emails = sheet.getRange("G3:G" +  
sheet.getLastRow()).getValues();
  for (var i = 0; i < emails.length; i++)
    if (emails[i][0] == email){
  value = sheet.getRange("L" + (i+3)).getValue() + 1
  datevalue = sheet.getRange("J" + (i+3)).getValue() - 1
  sheet.getRange("L" + (i+3)).setValue(value);
  sheet.getRange("J" + (i+3)).setValue(datevalue); 

因此,我认为需要更改的行“ datevalue = sheet.getRange(“ J” +(i + 3))。getValue()-1“,我从未移动过日期并且不确定如何保持相同的格式。

1 个答案:

答案 0 :(得分:1)

Sheets和Apps脚本使用不同的时间单位作为基数,因此您在脚本之后返回了Unix Time。尝试更改:

value = sheet.getRange("L" + (i+3)).getValue() + 1
datevalue = sheet.getRange("J" + (i+3)).getValue() - 1
sheet.getRange("L" + (i+3)).setValue(value);
sheet.getRange("J" + (i+3)).setValue(datevalue); 

收件人:

value = sheet.getRange("L" + (i + 3)).getValue() + 86400000
datevalue = sheet.getRange("J" + (i + 3)).getValue() - 86400000
sheet.getRange("L" + (i + 3)).setValue(new Date(value)).setNumberFormat("MM/dd/yyyy");
sheet.getRange("J" + (i + 3)).setValue(new Date(datevalue)).setNumberFormat("MM/dd/yyyy");

您可以看到可用的日期格式here