日期getValue()与getDisplayValue()相隔一天

时间:2019-11-29 05:18:54

标签: google-apps-script google-sheets

我有一个日期格式设置为“ 2019年11月2日,星期六”的单元格。

但是当我查找带有脚本的单元格日期时,该休假一天了(-1)。

var date = new Date();
date = sheet_log.getRange(110, 1).getValue();
var dateDisplay = sheet_log.getRange(110, 1).getDisplayValue();
// date = Fri Nov 01 2019 18:00:00 GMT-0600 (CST)
// dateDisplay = Sat, Nov 2, 2019

为什么Google表格可以让我使用日历选择器设置日期,却可以在脚本中计算减去一天的日期?

有什么办法解决吗?

1 个答案:

答案 0 :(得分:1)

这个答案怎么样?请认为这只是几个可能的答案之一。

尽管我不确定您的实际情况,例如,电子表格的时区值和脚本的时区值不同,但是这种情况可能会发生。

  • getValue()检索的值遵循脚本的时区。
  • getDisplayValue()检索的值遵循电子表格的时区。

可以通过以下脚本确认两个时区。

var timezone1 = SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone();
var timezone2 = Session.getScriptTimeZone();
Logger.log(timezone1)
Logger.log(timezone2)
  • 如果timezone1timezone2不同,则认为问题的原因是由于不同的时区。在这种情况下,请设置电子表格或脚本的时区。
  • 如果timezone1timezone2相同,则认为问题的原因不是由于时区。因此,需要进行更多调查以弄清问题的原因。

参考文献:

如果我误解了你的情况,我表示歉意。

相关问题