Datetime 如何修复本地时间的Google Apps脚本并自动清除单元格

Datetime 如何修复本地时间的Google Apps脚本并自动清除单元格,datetime,google-apps-script,google-sheets,timestamp,Datetime,Google Apps Script,Google Sheets,Timestamp,我正在创建一个共享的议程,必须由不同的人来完成。每次修改某个单元格时,更改日期(天)都会在同一行的另一个单元格中报告。下面的代码目前正在运行,但存在3个小问题: 当地时间不对(我住在意大利) 我也想看看时间(小时:分钟) 如果清除修改的单元格(如删除文本),更改日期也应消失 我发现这种类型的代码很难调试,如果有任何帮助,我将不胜感激。 提前谢谢大家, function onEdit(event) { var cell = event.source.getActiveCell(); var

我正在创建一个共享的议程,必须由不同的人来完成。每次修改某个单元格时,更改日期(天)都会在同一行的另一个单元格中报告。下面的代码目前正在运行,但存在3个小问题:

  • 当地时间不对(我住在意大利)
  • 我也想看看时间(小时:分钟)
  • 如果清除修改的单元格(如删除文本),更改日期也应消失
  • 我发现这种类型的代码很难调试,如果有任何帮助,我将不胜感激。 提前谢谢大家,

    function onEdit(event) {
    var cell = event.source.getActiveCell();   
    var sheet = cell.getSheet();
    var headers= sheet.getDataRange().getValues()[0]; 
    var statusCol = headers.indexOf('Status') + 1 ; 
    
    var ss = event.source.getActiveSheet();
    if (event.range.columnStart != 2) {
    
    } else {
        ss.getRange(event.range.rowStart, 5)
            .setValue(getDate(new Date()));
    }
    
    var tt = event.source.getActiveSheet();
    if (event.range.columnStart != 34) {
        return;
    } else {
        tt.getRange(event.range.rowStart, 37)
            .setValue(getDate(new Date()));
    }
    }
    
    function getDate(d) {
    if (d) {
        return d.getDate() + "/" + (d.getMonth()+1) + "/" + d.getYear();
    }
    }
    
    如果删除单元格内容,则添加时区、小时、分钟并删除日期时间。 它以24小时格式添加小时和分钟,并进行时区校正,如果e.value为null,则删除datetime单元格的内容

    function onEdit(e) {
      var ss=e.source;
      var rg=e.range;   
      var sh=rg.getSheet();
      if(rg.columnStart!=2 && rg.columnStart!=34){return;}
      if(rg.columnStart==2){
        if(e.value) {
          sh.getRange(rg.rowStart, 5).setValue(Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth()+1,new Date().getDate(),new Date().getHours(),new Date().getMinutes()),Session.getScriptTimeZone(),"d/MMM/yyyy HH:mm"));
        }else{
          sh.getRange(rg.rowStart, 5).setValue('');
        }
      }
      if (rg.columnStart==34) {
        if(e.value) {
          sh.getRange(rg.rowStart, 37).setValue(Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth()+1,new Date().getDate(),new Date().getHours(),new Date().getMinutes()),Session.getScriptTimeZone(),"d/MMM/yyyy HH:mm"));
        }else{
          sh.getRange(rg.rowStart, 37).setValue('');
        }
      }
    }
    

    您是否缺少
    返回
    here
    if(event.range.columnStart!=2){//here}else{ss.getRange(event.range.rowStart,5).setValue(getDate(new Date());}
    这个问题太宽泛了,因为每一点都可能有自己的答案。感谢您的及时回复。不幸的是,时间比我的实际时区早了6个小时。此外,删除单元格内容后,包含日期的单元格也不会被删除。我不知道这是否有区别,但第3列和第34列是下拉列表。如果知道它们是下拉列表就好了,因为我的工作表上没有任何下拉列表。这在我这边起作用了,所以你可能需要做一些调试,因为你没有包括所有的细节和你的问题。电子表格有一个时区,脚本有一个时区,所以你可能需要调整它们。对于丢失的细节,我很抱歉。我并不真正了解代码。你能帮我修改代码,把下拉菜单考虑进去吗?非常感谢你!!使用新信息和代码更新您的问题,并创建电子表格的公共版本,以便我们可以验证操作。看一看。或者,如果你愿意,你可以检查这一个关闭,并开始另一个。你的电话。