Google App Maker - добавьте кнопку для сбора отметок времени в методе onclick.

Я искал все выше и ниже и не смог найти конкретный ответ, который работал бы. Мне нужно добавить кнопку в форму в Конструкторе приложений для записи метки времени, а не даты при нажатии. Пока единственное, что мне удалось заставить работать, это

widget.datasource.item.Timestamp_OUT = new Date();

Я также пробовал

var timestamp = getTimeStamp();

Но все время появляется ошибка «ReferenceError:« getTimeStamp »не определен». Я, вероятно, упускаю из виду очевидное, поскольку сделать что-то настолько простое не должно быть так сложно. Любая помощь приветствуется, спасибо.


person Wayne Strydom    schedule 22.02.2019    source источник
comment
Есть ли в ваших клиентских скриптах функция, называемая function getTimeStamp () {}? Если нет, то именно поэтому в вашем сообщении об ошибке getTimeStamp не определен. Я полагаю, если первое решение работает для вас, почему бы вам не реализовать его?   -  person Markus Malessa    schedule 22.02.2019
comment
Если вы работаете над клиентским скриптом, попробуйте это var timestamp = + new Date();   -  person Morfinismo    schedule 22.02.2019
comment
Если вам нужно, чтобы ваша временная метка была в определенном формате, и с этим у вас проблемы, попробуйте изучить moment.js.   -  person Ian Hyzy    schedule 22.02.2019
comment
Я создал следующую функцию: - ›function getTimeStamp () {var timestamp = + new Date (); } ‹- а затем обновил щелчок до -› var timestamp = getTimeStamp (); widget.datasource.item.Timestamp_IN = новая отметка времени (); ‹- но теперь я получаю сообщение об ошибке« timestamp не является конструктором в NewPage.Form1.Form1Body.Button1.onClick: 2: 39 »   -  person Wayne Strydom    schedule 22.02.2019


Ответы (2)


На основании вашего комментария:

У вас почти все правильно, за некоторыми исключениями. Итак, ваша функция getTimeStamp должна выглядеть так:

function getTimeStamp(){
    var timestamp = + new Date();
    return timestamp;
}

То есть потому, что вам нужно вернуть значение. Другая проблема заключается в том, что когда вы присваиваете значение элементу источника данных, вам не нужно использовать ключевое слово new; следовательно, должно быть так:

var timestamp = getTimeStamp();
widget.datasource.item.Timestamp_IN = timestamp;

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

person Morfinismo    schedule 22.02.2019
comment
Это хороший совет, я занят обучением и бросаю себе вызов, строя, пока учусь. Теперь все возвращается без ошибок в отношении формул, но я все еще не могу получить кнопку для выполнения задания, так как получаю сообщение об ошибке ** Несоответствие типа: невозможно установить номер типа для свойства Timestamp_OUT. Ожидается тип Дата. В NewPage.Form1.Form1Body.Button1.onClick: 2: 38 **. Хотя поле в таблице SQL - Дата, затем изменил тип SQL на метку времени в расширенных настройках. Кажется, он все еще ждет свидания? - person Wayne Strydom; 23.02.2019
comment
@WayneStrydom Понятно, я начал то же самое. Повезло тебе! Так держать! Я бы порекомендовал вам изменить тип SQL поля с даты на число и обработать преобразование даты с помощью javascript. - person Morfinismo; 23.02.2019
comment
Спасибо, чувак, это большая проблема, но быстро многому научиться. Ваша помощь до сих пор очень ценится, приятно, что вас не расстраивают из-за того, что вы просите о помощи. Ваше здоровье! - person Wayne Strydom; 25.02.2019
comment
не могли бы вы сказать мне, почему здесь временная метка привязана к определенному часовому поясу и не отнимает время у пользовательского устройства? Есть ли способ изменить это? - person Wayne Strydom; 21.06.2019
comment
@WayneStrydom Это не так. Если вы не используете код в серверном скрипте. Код сервера всегда привязан к часовому поясу. - person Morfinismo; 21.06.2019

Успех! С помощью всех присутствующих и ребят по этой ссылке: Группы Google - Решение Мне удалось раскрыть дело (и кое-что узнать по ходу дела).

Все, что было изначально выше, работает нормально, если вы уберете "+" из функции, чтобы она читалась

function getTimeStamp(){
var timestamp = new Date();
return timestamp;
}

Затем по щелчку

var timestamp = getTimeStamp();
widget.datasource.item.Timestamp_IN = timestamp;

Затем отформатируйте таблицу, чтобы отобразить правильные данные с помощью

@datasource.item.Test_Timestamp#formatDate('EEEE \x27at\x27 h:mm:ss a')

И "Эй, Престо!" вы получаете кнопку, при нажатии которой вы получаете метку времени. Спасибо всем, кто участвовал, вы причина того, что люди, которые учатся, продолжают это делать и не бросают полотенце, когда все становится сложно :)

person Wayne Strydom    schedule 25.02.2019