gpt4 book ai didi

datetime - formatDate() 给出正确的日期 -1 天(Google Apps 脚本)

转载 作者:行者123 更新时间:2023-12-05 00:19:36 27 4
gpt4 key购买 nike

我正在使用 Google 电子表格每天记录一些事情。为了方便我的同事使用,我尽可能将电子表格制作为“界面式”,基本上它类似于一个表格。

这个“表单”有一个提交按钮,用于保存工作表并创建一个新工作表(模板副本)。

问题是保存的工作表应该与单元格中的日期一起保存。 但它保存在实际日期前一天的日期......(!)我快疯了,试图找出原因。

这是我在按下提交按钮时调用的 Google Apps 脚本中的代码:

function renameSheet() {
var ShootName = SpreadsheetApp.getActiveSheet( ).getRange("G8").getValue();
var DateName1 = SpreadsheetApp.getActiveSheet( ).getRange("A8").getValue();
var newdate = new Date(SpreadsheetApp.getActiveSheet( ).getRange("A8").getValue());
var Datename2 = Utilities.formatDate(newdate, "PST", "yyyy-MM-dd");
var NewName = Datename2 + " - " + ShootName;
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(NewName);
var oldSheet = ss.getActiveSheet();
// create a duplicate of the template sheet
ss.setActiveSheet(ss.getSheetByName("Original0"));
var newSheet = ss.duplicateActiveSheet();
newSheet.activate();
ss.moveActiveSheet(1);
newSheet.setName("NewLog");

}

如果单元格 A8 的值为“12.25.16” - 工作表将被命名为“12.24.16”。

如果有人对此有适当的甚至是肮脏的快速修复,我很想听听。

最佳答案

您正在对这一行中的时区进行硬编码:

var Datename2 = Utilities.formatDate(newdate, "PST", "yyyy-MM-dd");

但这并没有考虑到夏令时和电子表格中的仅日期值总是在 00:00:00 小时,因此一小时类次可以更改日期......

替换为这样的自动值:
var Datename2 = Utilities.formatDate(newdate, Session.getScriptTimeZone(), "yyyy-MM-dd");

关于datetime - formatDate() 给出正确的日期 -1 天(Google Apps 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35488331/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com