基于另一个单元格填充自动时间戳

问题描述 投票:0回答:1

我发现这里的脚本内容时,在另一个键入一个细胞自动填充时间戳。它的工作原理,但时间永远准确。它使同一时间整天。

谁能告诉我我做错了什么在我的剧本?

我的文档https://docs.google.com/spreadsheets/d/1NRNs6QUQ0K1m9mPH00zGUDiVxL8A1foTXxXIQ_XFjpA/edit?usp=sharing包含以下脚本:

function onEdit(event)
{ 
  var timezone = "GMT-8";
  var timestamp_format = "MM-dd-yyy"; // Timestamp Format. 
  var updateColName = "Student Number";
  var timeStampColName = "Timestamp";
  var sheet = event.source.getSheetByName('SCAN LATE'); //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)
    var d = new Date();
    var curTime = d.toLocaleTimeString()
    cell.setValue(date.toString() + " " + curTime );
  //}
}
google-apps-script google-sheets timestamp simpledateformat
1个回答
0
投票

yyy不是一年有效的格式。有效格式是

  • YY
  • YYYY

为了得到当前的日期,时间,使用

var timestamp = new Date();

要格式化时间戳将它传递给谷歌表为文本,使用

var timezone = 'GMT-8';
var datetimeFormat = 'MM-dd-yyyy hh:mm:ss';
var timestampT = Utilities.formatDate(timestamp, timezone, datetimeFormat);

通常通过一个时间戳谷歌表最简单的方法是通过一个Date对象,并使用电子表格单元格的格式功能来格式化日期值的要求。

range.setValue(new Date());

参考

© www.soinside.com 2019 - 2024. All rights reserved.