每当用户在评论栏中输入数据时,我都会尝试自动更新我的日期列(格式化为日期)。
所以我发现这个脚本是有人写的,它工作得非常好。今天突然间它停止了工作。
function UpdateDate() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) {
var r = s.getActiveCell();
if(r.getRow() > 2 && r.getColumn() == 6 && r.getValue()) {
var nextCell = r.offset(0, -1);
var time = new Date();
time = Utilities.formatDate(new Date(), "EST-05:00", "MM-DD-YY");
nextCell.setValue(time);
};
};
}
每当我更新评论部分时,我现在得到2/35/15,这显然是不正确的。我无法弄清楚造成这个问题的原因。非常感谢任何帮助。
答案 0 :(得分:1)
D
是一年中的一天,而d
是一个月中的一天。 DD
和dd
是零填充版本。你有可能要求在1月份的第300天。
time = Utilities.formatDate(new Date(), "EST-05:00", "MM-dd-YY");
spec应用脚本使用的是按照Java。
答案 1 :(得分:0)
我将代码的日期部分更改为:它似乎正在运行。
function UpdateDate() {
var s = SpreadsheetApp.getActiveSheet();
var stringAsDate = "";
stringAsDate = Utilities.formatDate(new Date(), "EST-05:00", "MM-dd-yy");
Logger.log(stringAsDate);
}
完整的代码是:
function UpdateDate() {
var s = SpreadsheetApp.getActiveSheet();
if( s.getName() == "Sheet1" ) {
var r = s.getActiveCell();
if(r.getRow() > 2 && r.getColumn() == 6 && r.getValue()) {
var nextCell = r.offset(0, -1);
var stringAsDate = "";
stringAsDate = Utilities.formatDate(new Date(), "EST-05:00", "MM-dd-yy");
nextCell.setValue(stringAsDate);
};
};
}
您不需要time
变量。 Utilities.formatDate()
返回一个字符串,因此将变量time
设置为日期类型是没有意义的。