Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Date 需要时间和时间;谷歌表单上的日期戳,但显示时间提前了四个小时_Date_Time_Google Sheets_Datetimeoffset - Fatal编程技术网

Date 需要时间和时间;谷歌表单上的日期戳,但显示时间提前了四个小时

Date 需要时间和时间;谷歌表单上的日期戳,但显示时间提前了四个小时,date,time,google-sheets,datetimeoffset,Date,Time,Google Sheets,Datetimeoffset,我在Google Sheets中有一列,当我输入首字母时,脚本时间戳进入下一列,然后通过现有的可变值单元格公式(例如:=B9 time(4,4,0))反映其他几个偏移模拟时间戳 我现在面临的问题是,任何后续条目都必须是实时的,并加盖相应的印章,这会阻止我使用时区技巧来完成。基本上,我只需要脚本显示当前时间戳减去四个小时(这是用于我的“设置”单元,该单元自动回填模拟时间),但对于所有未来条目都正常工作(如果理解目的有助于澄清我的问题,这是用于药物管理模拟) 这是我的工作脚本(减去当前时间减去四小时

我在Google Sheets中有一列,当我输入首字母时,脚本时间戳进入下一列,然后通过现有的可变值单元格公式(例如:=B9 time(4,4,0))反映其他几个偏移模拟时间戳

我现在面临的问题是,任何后续条目都必须是实时的,并加盖相应的印章,这会阻止我使用时区技巧来完成。基本上,我只需要脚本显示当前时间戳减去四个小时(这是用于我的“设置”单元,该单元自动回填模拟时间),但对于所有未来条目都正常工作(如果理解目的有助于澄清我的问题,这是用于药物管理模拟)

这是我的工作脚本(减去当前时间减去四小时的能力):


这是我用来测试的代码。您可以拔出工时调整部件

function onEdit(e) {
  x=e.source.getSheetName()
  if( x == "Vitals" ) { //checks that we're on the correct sheet 
   var y = e.range.getSheet().getActiveCell();
    if( y.getColumn() == 1 ) { //checks the column
      var nextCell = y.offset(0,1);
      if( nextCell.getValue() === '' ) //is empty?
       var d = new Date();// d is now a date object
       var h=d.getHours()
       var m=d.getMinutes()
       var s=d.getSeconds()
       var nh=h-4 //subtract 4 hrs
       d.setHours(nh,m,s,0); //set the new hours , min Secs and milliSecs as well
       nextCell.setValue(d);
    }
  } 
}
下面是我的共享测试电子表格的链接。复制一份,然后试一试


您能告诉我如何将其插入正确的位置吗?另一位先生告诉我,我必须将这些事件触发器分配给相应的列/单元格,因为它们不会在脚本编辑器中运行。当我删除脚本的VITALS部分并将其添加到我“缩写”列(第1列)的第一个单元格中,作为条件设置->自定义公式下的校准值时,偏移框(第2列)中不会发生任何事情。再次感谢!我在答案中添加了一个到我的测试电子表格的链接。如果这不能回答您的问题,请共享您的电子表格,我会看一看。转到您的脚本编辑器。将光标放在onOpen函数最后一行的末尾(第19行)。输入,将新建一行。复制并粘贴上面的代码。保存,你应该很好去。下面是指向您的电子表格副本的链接。好像当我在首字母的金色空白框中输入时间戳时,它会在生命体征的B列中标记当前时间,而不是在四小时前…是在你这边吗?好的,我看到问题了。我不知道你已经有另一个了。你不能有两个。如果我把你的注释掉,我的注释正确。您是否需要MAR日期时间来抵消4小时?我也能做到。让我知道。我要离开几个小时。我回来后再查。
function onEdit(e) {
  x=e.source.getSheetName()
  if( x == "Vitals" ) { //checks that we're on the correct sheet 
   var y = e.range.getSheet().getActiveCell();
    if( y.getColumn() == 1 ) { //checks the column
      var nextCell = y.offset(0,1);
      if( nextCell.getValue() === '' ) //is empty?
       var d = new Date();// d is now a date object
       var h=d.getHours()
       var m=d.getMinutes()
       var s=d.getSeconds()
       var nh=h-4 //subtract 4 hrs
       d.setHours(nh,m,s,0); //set the new hours , min Secs and milliSecs as well
       nextCell.setValue(d);
    }
  } 
}