在我的 Google 表格中,我正在使用脚本
function TIMESTAMP() {
var today = new Date();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var date = today.getDate() + '/' + (today.getMonth() + 1) + '/' + today.getFullYear();
var dateTime = time + '-' + date;
var timestamp_format = "dd-MM";
return dateTime;
}
function onEdit(e) {
const excludeSheetNames = ["START", "MASTER"]; // Please set exclude sheet names.
const { range } = e;
const sheet = range.getSheet();
if (excludeSheetNames.includes(sheet.getSheetName()) || range.columnStart != 4 || range.rowStart == 1) return;
range.offset(0, 1).setValue(TIMESTAMP());
if(e.value != "TRUE") return;
e.source.getActiveSheet().getRange(e.range.rowStart,e.range.columnStart+1).setValue(new Date()).setNumberFormat ('HH:MM:SS - dd/MM ');
}
这是 Tanaike 给我的,它从 D 列到 E 列中的下拉列表的选择中检索时间和日期。 全年时间和日期
从您显示的示例输出情况来看,如下使用
Utilities.formatDate
怎么样?
这样的话,当你想把值作为字符串值时,修改
TIMESTAMP
怎么样?
function TIMESTAMP() {
return Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "HH:mm:ss:SSS dd-MM");
}
如果你想把值作为日期对象,那么修改
onEdit
怎么样?我想这可能和TheMaster的评论是同一个方向。 参考
function onEdit(e) {
const excludeSheetNames = ["START", "MASTER"]; // Please set exclude sheet names.
const { range } = e;
const sheet = range.getSheet();
if (excludeSheetNames.includes(sheet.getSheetName()) || range.columnStart != 4 || range.rowStart == 1) return;
range.offset(0, 1).setNumberFormat("HH:mm:ss:SSS dd-MM").setValue(new Date());
if (e.value != "TRUE") return;
e.source.getActiveSheet().getRange(e.range.rowStart, e.range.columnStart + 1).setValue(new Date()).setNumberFormat('HH:MM:SS - dd/MM ');
}
TIMESTAMP
。数字格式已更改,日期对象已放入单元格中。