我在google apps脚本中有一个代码,当满足某些条件时可以打印时间戳。代码如下所示:
function onEdit(e){
if (e.range.columnStart == 16 && e.range.rowStart >= 12) {
if (e.value == 'Update' || e.value == 'Transmit') {
e.range.offset(0, 1).setValue(new Date()).setNumberFormat("yyyy-MM-dd HH:mm:ss");
} else {
e.range.offset(0, 1).setValue('');
}
} else if (e.range.columnStart == 14 && e.range.rowStart >= 20) {
if (e.value == 'Transmit') {
e.range.offset(0, 1).setValue(new Date()).setNumberFormat("yyyy-MM-dd HH:mm:ss");
} else {
e.range.offset(0, 1).setValue('');
}
}
}
供您参考,当我使用Google工作表时,它是基于新加坡时区的,但是我认为来自不同时区的其他人将与我有所不同。
我要实现的目标是为这些Google工作表的所有用户(来自不同国家和不同时区)确定时区(基于新加坡时区),而不管其Google工作表中的时区设置如何。我正在尝试将其包括在内,setNumberFormat
但似乎此功能没有参数。我不确定是否可以实现新加坡时区,如果不能实现,那么至少要基于纽约时区(因为纽约更常见?)。
您应该使用Utilities.formatDate(date,timeZone,format)方法并指定的时区Singapore
。
这是您可以用于目的的所有时区ID的列表,您的情况下的ID为Asia/Singapore
。
因此,这将为您提供新加坡的当前格式和日期时间:
Utilities.formatDate(new Date(), 'Asia/Singapore', 'yyyy-MM-dd HH:mm:ss');
或者考虑到新加坡的时区,GMT+8
您可以直接使用:
const dt = Utilities.formatDate(new Date(), 'GMT+8', 'yyyy-MM-dd HH:mm:ss');
function onEdit(e){
const dt = Utilities.formatDate(new Date(), 'Asia/Singapore', 'yyyy-MM-dd HH:mm:ss');
if (e.range.columnStart == 16 && e.range.rowStart >= 12) {
if (e.value == 'Update' || e.value == 'Transmit') {
e.range.offset(0, 1).setValue(dt);
} else {
e.range.offset(0, 1).setValue('');
}
} else if (e.range.columnStart == 14 && e.range.rowStart >= 20) {
if (e.value == 'Transmit') {
e.range.offset(0, 1).setValue(dt);
} else {
e.range.offset(0, 1).setValue('');
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句