Google表单会收集具有不同时区的两个日期

时间:2018-03-27 08:20:33

标签: javascript google-apps-script datepicker google-form

我在同一个谷歌表格中有两个日期选择器。当我尝试使用Google App Scripts格式化这些日期时,我遇到了两个日期都有不同时区的问题。

代码:

  Logger.log('Original value: '+data[0][column]+' - Data for document: '+Utilities.formatDate(data[0][column], "GMT+1", "dd-MM-yyyy"));

结果:

[18-03-27 10:06:25:299 CEST] Original value: Sun Apr 01 2018 00:00:00 GMT+0200 (CEST) - Data for document: 31-03-2018
[18-03-27 10:06:25:304 CEST] Original value: Mon Mar 12 2018 00:00:00 GMT+0100 (CET) - Data for document: 12-03-2018

我真的不需要将这些日期转换为特定的时区,只需将其转换为正确的格式即可。所以这个案例显示31-03-2018由于我的格式,它应该是01-04-2018。对于其他日期选择器,它工作正常。有什么想法吗?

澄清:两个日期都在单个表单提交中输入。对我来说,为什么这些日期会有不同的时区,这绝对是一个谜。

1 个答案:

答案 0 :(得分:0)

测试的一个选项是确保始终为日期格式实用程序提供相同的时区对象。

var d = new Date(data[0][column]);
var utc = new Date(d.toUTCString());

Utilities.formatDate(utc, "GMT+1", "dd-MM-yyyy"))

这有点过分,而较短的方法会产生相同的结果。

FWIW我不喜欢GAS中的效用日期功能