Отправка ответа формы Google из кода сзади (выпуск: дата) - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть форма Google, которая связана с Google Sheets для ответов. Я также сделал еще один файл Google Sheet и GAS, которые позволят мне добавлять ответ на мою форму Google программно / из кода. Мой код ГАЗА выглядит следующим образом:

var data = sheet.getDataRange().getValues();
var form = FormApp.openByUrl(formURL);
formResponse[0] = form.createResponse();
formResponse[0].withItemResponse(items[0].asListItem().createResponse(data[1][0])); //data[1][0] holds my Date response 2011/11/11
formResponse[0].submit();

Это может успешно добавить мой ответ в мою форму Google. Однако в листе Google (для ответов) я четко вижу, что эта дата не 2011/11/11, а 2011/11/10. Это всегда вычитается на один день.

Я подозревал, что это может быть проблема часового пояса файлов, поэтому я проверил как настройку Часового пояса Google Sheets, так и настройку часового пояса скрипта. Они все одинаковы.

Почему у меня дата, отличная от даты, указанной в моем ответе на форму? Я что-то пропустил?

1 Ответ

0 голосов
/ 19 апреля 2019

Класс ListItem требует String в качестве ответа. Используйте Utilities.formatDate(...) для преобразования даты в строку.

Выше, потому что, хотя объекты JavaScript имеют автоматически сгенерированное строковое значение, даты трудно обрабатывать, потому что

  • Даты наследуют часовой пояс из настроек электронной таблицы
  • Форматирование номеров ячеек может приводить к отображению дат нестандартными способами
  • В Google Sheets и JavaScript используются разные EPOCH

Ссылки

...