【问题标题】:i need to calculate a time difference in google sheets我需要计算谷歌表格中的时差
【发布时间】:2017-06-22 20:58:07
【问题描述】:

我有一个 Google 表格,名为“test time stuff” 它使用脚本自动添加日期和时间(在列“B”中),任何时候添加条目 进入事件栏。

这是脚本……

function onEdit(event)
{ 
  var timezone = "GMT-5";
  var timestamp_format = "E,M/dd H:mm a"; // Timestamp Format. 
  var updateColName = "event";
  var timeStampColName = "date / time";
  var sheet = event.source.getSheetByName('Sheet1'); //Name of the sheet 
where you want to run this script.


  var actRng = event.source.getActiveRange();
  var editColumn = actRng.getColumn();
  var index = actRng.getRowIndex();
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
  var dateCol = headers[0].indexOf(timeStampColName);
  var updateCol = headers[0].indexOf(updateColName); updateCol = 
updateCol+1;
  if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only 
timestamp if 'Last Updated' header exists, but not in the header row itself!
    var cell = sheet.getRange(index, dateCol + 1);
     var date = Utilities.formatDate(new Date(), timezone, 
 timestamp_format);
    cell.setValue(date);
   }
}

当我这样做时,我希望“事件之间的时间以小时和分钟为单位” 自动在该列中以小时和分钟显示时间。我怎样才能做到这一点?谢谢。

这里是表格的链接...

https://docs.google.com/spreadsheets/d/1eyrAzpOFKxDHxs05DYovx3NMrl6XaofXsR24Yt9UzlM/edit?usp=sharing

这是一个可以编辑的工作表链接...

https://docs.google.com/spreadsheets/d/1RqpVOsy2bzgqnhFHV7m1sae10o9pHA5cdEJ5Ijvl2C8/edit?usp=sharing

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    实际上取决于您希望它有多灵活。如果您不关心用户会输入一个值并留下一个空行,然后稍后再填写该空行,那么这很容易。你需要做的就是

    var prevEvent = sheet.getRange(sheet.getLastRow(), 2).getValue() //get the previous event time
    

    现在您确实需要确保您使用的是实际的 JavaScript date 格式并简单地计算差异。您可以在示例here 中阅读如何执行此操作。基本上是一样的,只有你的startend 是由你设置的新值定义的。正如我所提到的,如果最后一个值在5 行中说,并且有人在7 行中输入一个值,然后在6 行中输入一些内容,这将正常工作。 8 行中的下一个条目将仅考虑 7 行而不考虑 6

    要解决这个问题,您需要使用.getValues() 获取所有值,然后循环遍历它们,选择哪个时间是最后一个,但可以这样做。只是需要更多地摆弄for 循环

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-03
      • 2020-05-23
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多