我发现这里的脚本内容时,在另一个键入一个细胞自动填充时间戳。它的工作原理,但时间永远准确。它使同一时间整天。
谁能告诉我我做错了什么在我的剧本?
我的文档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 );
//}
}
yyy
不是一年有效的格式。有效格式是
为了得到当前的日期,时间,使用
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());
参考