使用下面的代码,当第1列中的单元格被编辑时,Google工作表将在第6列中输入日期。还包括时间戳。
如何更改此代码,以便仅输入日期(日-月-年)?这样可以在工作表上按日期进行搜索。
function onEdit(e) {
var sheetName = 'Cases Allocation'; //name of the sheet the script should work on
var colToWatch = 1
var colToStamp = 6 //timestamp in col A
if (e.range.columnStart !== 1 || e.source.getActiveSheet()
.getName() !== sheetName || e.value == '') return;
var writeVal = e.value !== "" ? new Date(),: '';
e.source.getActiveSheet()
.getRange(e.range.rowStart, colToStamp)
.setValue(writeVal);
}
答案 0 :(得分:0)
您可以尝试使用Utilities.formatDate
。此方法根据Java SE SimpleDateFormat类中描述的规范格式化日期。您可以访问日期和时间模式here。用法示例为:
// This formats the date as Greenwich Mean Time in the format
// year-month-dateThour-minute-second.
var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
Logger.log(formattedDate);
请注意,使用Utilities.formatDate
具有本post所述的以下效果:
Utilities.formatDate
不会更改单元格格式;它转换 其内容为文本。如果您要在中使用日期值 计算,您不希望将其转换为文本。Utilities.formatDate
需要一个来指定时区。如果你把 像“ GMT + 1”之类的东西,而您所在的国家/地区则实行夏令时 时间,您可以期待几个月后难以追踪的错误 后来。使用setNumberFormat时,日期值保持与 电子表格中的所有其他日期值,取决于其时区 设置。
为避免这些情况,您还可以使用setNumberFormat(numberFormat)
设置日期或数字格式。可接受的格式模式在Sheets API documentation中进行了描述。用法示例是:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getRange("B2");
// Always show 3 decimal points
cell.setNumberFormat("0.000");
答案 1 :(得分:0)
谢谢所有-尝试使用格式等,但是随后决定添加一列并拆分日期和时间,仅将日期放入新列中。