Правильная дата не отражается в форме отправки - PullRequest
0 голосов
/ 09 мая 2018

У меня есть форма Google с динамическим раскрывающимся списком с датами. Каждый раз, когда пользователь отправляет ответ, он отправляется на лист в виде строки (например: '5/22/2017 вместо просто 5/22/2017 ). У меня есть этот скрипт Google, который запускается при отправке формы для удаления одного qoute, так что он будет рассматриваться как дата, а не строка.

function editDate(e){

var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('RAW');
var rg = sh.getRange(2,6,sh.getLastRow()-1,2);
var data = rg.getValues(); 

for(var i=0;i<data.length;i++){
var datstr=String(data[i][0]).replace("'","");
data[i][0]=new Date(datstr);
}
rg.setValues(data);
}

Я заметил, что когда single qoute (') удаляется, дата становится предыдущей датой (Например, при отправке формы значение раскрытия равно ' 5/22/2017 , но когда скрипт запускается, он становится 5/21/2017 9: 00: 00 . Я создал образец формы Google и подключил ее к тестовому листу, чтобы проверить тот же код и он работает отлично и отражает правильную дату. Но на моем фактическом файле это не так, любая рекомендация по этому вопросу будет высоко оценена.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Я создал выпадающий вопрос с несколькими предварительно установленными датами, и они отображались в листе ответов формы в виде строк с символом '. Я просто выбрал весь столбец и отформатировал его как дату, а символ 'был удален, и некоторые простые тесты показывают, что с ними правильно обращаются как с датами.

0 голосов
/ 09 мая 2018

Итак, я отредактировал свой сценарий, чтобы он отображал правильную дату, и теперь он отлично работает! :) 1001 *

Я изменил строку:

data[i][0]=new Date(datstr);

к этому:

data[i][0]=Utilities.formatDate(new Date(datstr), Session.getScriptTimeZone(), "M/d/yyyy");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...