Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script Google应用程序脚本-复制时表单输入时间更改_Google Apps Script_Google Sheets_Google Forms - Fatal编程技术网

Google apps script Google应用程序脚本-复制时表单输入时间更改

Google apps script Google应用程序脚本-复制时表单输入时间更改,google-apps-script,google-sheets,google-forms,Google Apps Script,Google Sheets,Google Forms,我有一个谷歌表格来收集人们离开公司的信息。其中一个问题是“他们离开的日期和时间”,回答的格式是dd/mm/yyyy,hh:mm。因此,一个典型的回复是2015年4月24日17:00:00,这是我在提交表单时在表单回复1工作表中看到的 我需要添加星期几并将信息复制到电子表格中的另一个工作表中,因此我使用 var leaveDate=inputSheet.getRangeG+lastRow.getValue; var leaveDateTime=Utilities.formatDateleaveDa

我有一个谷歌表格来收集人们离开公司的信息。其中一个问题是“他们离开的日期和时间”,回答的格式是dd/mm/yyyy,hh:mm。因此,一个典型的回复是2015年4月24日17:00:00,这是我在提交表单时在表单回复1工作表中看到的

我需要添加星期几并将信息复制到电子表格中的另一个工作表中,因此我使用

var leaveDate=inputSheet.getRangeG+lastRow.getValue; var leaveDateTime=Utilities.formatDateleaveDate,GMT,EEE dd MM yyyy hh:MM:ss; 我看到的问题是,当我粘贴值时,时间在变化,粘贴的内容是

Fri 24-04-2015 04:00:00
有人能解释为什么会发生这种情况,以及我能做些什么来解决它吗

谢谢

试试:

... //var leaveDateTime=Utilities.formatDateleaveDate,GMT,EEE dd MM yyyy hh:MM:ss; var leaveDateTime=Utilities.formatDateleaveDate,GMT,EEE dd MM yyyy HH:MM:ss; ... 更新


应用程序脚本将日期类型转换为脚本编辑器中设置的时区。在脚本编辑器中,您需要设置时区,即使您已经在电子表格中设置了时区

将时区设置为本地时区

确保电子表格中的时区与脚本编辑器中的时区匹配


如果您在多个时区中有多个电子表格编辑器,并且其他用户已将时间设置为其本地时间,那么显然,他们的时间和您的时间将不相同。如果有人在世界另一端的下午4点离开公司,他们不会在你的时间下午4点离开公司。您可以假设,如果电子表格中的状态是下午4点,那么这是他们的本地时间,并转换时间。在这种情况下,您需要知道每次输入的时区,然后根据需要进行调整。

感谢@sandy good和@wchiquito为我指明了正确的方向。有两个问题。第一个问题是使用hh而不是hh。第二个问题是,我们目前使用的是GMT+1,将一直持续到10月底,届时我们将返回GMT!因为我不想对这一点进行编码,所以我将通过删除日期来简化它,这意味着我不必重新格式化日期。

对您的解决方案进行解释会很有帮助。@showdev。当然小时:上午/下午1-12点。H:第0-23天的小时数。From-我的解决方案假定时区电子表格和脚本相同。检查@sandy好答案。谢谢。我在电子表格和脚本编辑器中检查了时区,它们都是GMT+00。我已将代码更改为var leaveDateTime=new DateleaveDate;leaveDateTime=Utilities.formatDateleaveDateTime,GMT,EEE dd MM yyyy HH:MM,如@wchiquito所示,结果现在显示为16:00而不是17:00。