2012-03-11 3 views
1

Я новичок в скрипте приложений Google, и у меня возникли проблемы с обработкой строкой даты из формы UiApp. В этом случае я пишу скрипт, позволяющий пользователю фильтровать таблицу с меткой времени в пределах заданного диапазона дат.Синхронизация строк даты с использованием скрипта Google Apps

Моя проблема заключается в том, что код ниже возвращает неверный объект даты, когда передается строка даты (из текстового поля с именем dateFromField) в обычном Javascript формат YYYY,M,D (т.е. 2012,1,2 на 2 февраля, 2012):

function dateFilter(e) { 
    var fromDate = new Date(e.parameter.dateFromField); 
} 

Я проверил, что e.parameter.dateFromField правильно возвращает заданную строку (Logger.log(e.parameter.dateFromField); возвращает 2012,1,2) и что его тип - это строка (а не объект).

Однако, если ввести строку даты в функции непосредственно, т.е .:

function dateFilter(e) { 
    var fromDate = new Date(2012,1,2); 
} 

Я получаю действительный объект даты. Я не понимаю разницы между этими двумя примерами - насколько я могу судить, они эквивалентны; в обоих случаях строка 2012,1,2 передается функции new Date. Я, очевидно, пропустил что-то простое - может ли кто-нибудь сказать мне, что?

ответ

5

Когда вы ввели его вручную, вы фактически передали 3 параметра номера, а не строку со списком номеров, разделенных запятой.

Я думаю, вы могли бы просто разделить свой параметр перед передачей, например.

var dateParts = e.parameter.dataFromField.split(','); 
var fromDate = new Date(dateParts[0], dateParts[1], dateParts[2]); 
+0

Я знал, что мне не хватает чего-то простого, но это просто смущает. Спасибо, что потакали мне - ваше решение прекрасно работало. – Nick

2

Я бы рекомендовал использовать классы DateBox и DatePicker в UiApp вместо текстового поля. Они возвращают объект фактической даты, поэтому устраняют необходимость разбирать вообще. Они были добавлены в документацию Script Script. См. here.

+0

Итак, у них есть! Использование этих функций, безусловно, упростит работу - спасибо за подсказку. – Nick

+0

, но теперь устарели? –

Смежные вопросы