我正在运行一个脚本,该脚本将在每个单元格中向上移动一个日期。我希望它将所有选定的日期上移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“,我从未移动过日期并且不确定如何保持相同的格式。
答案 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。