Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 如何格式化时间戳';新日期();谷歌应用程序脚本中的新加坡时区?_Datetime_Google Apps Script_Google Sheets_Timezone - Fatal编程技术网

Datetime 如何格式化时间戳';新日期();谷歌应用程序脚本中的新加坡时区?

Datetime 如何格式化时间戳';新日期();谷歌应用程序脚本中的新加坡时区?,datetime,google-apps-script,google-sheets,timezone,Datetime,Google Apps Script,Google Sheets,Timezone,我在GoogleApps脚本中有一个代码,在满足某些条件时打印时间戳。代码如下所示: 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()).setNumberFo

我在GoogleApps脚本中有一个代码,在满足某些条件时打印时间戳。代码如下所示:

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工作表中的时区设置如何。我试图将其包含在
setNumberFormat
中,但似乎此函数没有参数。我不确定是否可以实现新加坡时区,如果不能,至少可以基于纽约时区(因为纽约更常见?)。

解释: 您应该使用该方法并指定
新加坡
的时区

这是一个列表,列出了所有您可以用于您的目的,您的身份证将是
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('');
    }
  }
}