在 Google App Maker 中,如何更新标签以显示当前时间?
In Google App Maker, how do I update a label to show the current time?
如何更新 Google App Maker 中文本标签中显示的时间以显示当前时间?
我正在创建一个登录/退出信息亭,我想在屏幕上显示当前日期和时间,如此处所示。
日期和时间在标签的 "onAttach" 事件脚本中指定:
var options = {
weekday: "long", year: "numeric", month: "long",
day: "numeric", hour: "numeric", minute: "2-digit"
};
var currentDateTime = new Date().toLocaleTimeString('en-US', options, {timeZone: 'America/New_York'});
widget.text = currentDateTime;
但是,此标签仅在页面加载时更新,并且没有事件选项可以定期 运行 脚本来更新时间。我希望有一个不需要服务器脚本或创建新数据源的解决方案,但是,这可能是必需的。
感谢任何帮助!
更新问题。
经过进一步研究,我看到其他人使用 SetInterval 来定期调用函数。我用 SetInterval 函数更新了我的脚本。这似乎有效,但是,我的研究还发现有些人认为 SetInterval 并不总是一个好的选择。目前我对它的了解还不够多,无法判断,但如果我了解更多,我会更新这个 post。
function getCurrentDateTime() {
var options = {
weekday: "long", year: "numeric", month: "long",
day: "numeric", hour: "numeric", minute: "2-digit"
};
var currentDateTime = new Date().toLocaleTimeString('en-US', options, {timeZone: 'America/New_York'});
widget.text = currentDateTime;
}
getCurrentDateTime();
var interval = setInterval(getCurrentDateTime, 60000);
感谢您确认使用 setInterval 是合适的。还要感谢有关清除用户离开页面时的间隔的提示。我想我有一个解决方案。我使用的方法是
- 为名为 setIntervalIDNumber
的页面定义自定义 属性
- 使用 onAttach 事件启动 setInterval 函数并
将 setInterval 编号存储在 setIntervalIDNumber 属性
中
- 通过引用清除setInterval函数
setIntervalIDNumber 属性
代码如下:
onAttach:
function getCurrentDateTime() {
var options = {
weekday: "long", year: "numeric", month: "long",
day: "numeric", hour: "numeric", minute: "2-digit"
};
var currentDateTime = new Date().toLocaleTimeString('en-US', options, {timeZone: 'America/New_York'});
widget.text = currentDateTime;
}
getCurrentDateTime();
widget.root.properties.setIntervalIDNumber = setInterval(getCurrentDateTime, 60000);
onDetach:
clearInterval(widget.root.properties.setIntervalIDNumber);
我认为这可能是最终的解决方案。
如何更新 Google App Maker 中文本标签中显示的时间以显示当前时间?
我正在创建一个登录/退出信息亭,我想在屏幕上显示当前日期和时间,如此处所示。
日期和时间在标签的 "onAttach" 事件脚本中指定:
var options = {
weekday: "long", year: "numeric", month: "long",
day: "numeric", hour: "numeric", minute: "2-digit"
};
var currentDateTime = new Date().toLocaleTimeString('en-US', options, {timeZone: 'America/New_York'});
widget.text = currentDateTime;
但是,此标签仅在页面加载时更新,并且没有事件选项可以定期 运行 脚本来更新时间。我希望有一个不需要服务器脚本或创建新数据源的解决方案,但是,这可能是必需的。
感谢任何帮助!
更新问题。
经过进一步研究,我看到其他人使用 SetInterval 来定期调用函数。我用 SetInterval 函数更新了我的脚本。这似乎有效,但是,我的研究还发现有些人认为 SetInterval 并不总是一个好的选择。目前我对它的了解还不够多,无法判断,但如果我了解更多,我会更新这个 post。
function getCurrentDateTime() {
var options = {
weekday: "long", year: "numeric", month: "long",
day: "numeric", hour: "numeric", minute: "2-digit"
};
var currentDateTime = new Date().toLocaleTimeString('en-US', options, {timeZone: 'America/New_York'});
widget.text = currentDateTime;
}
getCurrentDateTime();
var interval = setInterval(getCurrentDateTime, 60000);
感谢您确认使用 setInterval 是合适的。还要感谢有关清除用户离开页面时的间隔的提示。我想我有一个解决方案。我使用的方法是
- 为名为 setIntervalIDNumber 的页面定义自定义 属性
- 使用 onAttach 事件启动 setInterval 函数并 将 setInterval 编号存储在 setIntervalIDNumber 属性 中
- 通过引用清除setInterval函数 setIntervalIDNumber 属性
代码如下:
onAttach:
function getCurrentDateTime() {
var options = {
weekday: "long", year: "numeric", month: "long",
day: "numeric", hour: "numeric", minute: "2-digit"
};
var currentDateTime = new Date().toLocaleTimeString('en-US', options, {timeZone: 'America/New_York'});
widget.text = currentDateTime;
}
getCurrentDateTime();
widget.root.properties.setIntervalIDNumber = setInterval(getCurrentDateTime, 60000);
onDetach:
clearInterval(widget.root.properties.setIntervalIDNumber);
我认为这可能是最终的解决方案。