当我点击“更改日期”按钮时,它会更新日期列中的日期。它将日期增加1个月,并在日期后输入时间戳。正如你所看到的,对于账户2的日期,它增加了完成1个月的日期,但是对于账户1,它只增加了30天,从10月1日到10月31日。
我只希望月份号改变,我不希望日期后输入的时间戳。
function dateChanger() {
var sheetName = "Sheet 1"; // Please set your sheet name.
var a1Notations = ['G5:G27', 'T5:T27', 'AG5:AG27', 'AT5:AT27']; // This is from your question.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var ranges = a1Notations.map(e => `'${sheetName}'!${e}`);
var { valueRanges } = Sheets.Spreadsheets.Values.batchGet(ssId, { ranges, valueRenderOption: "UNFORMATTED_VALUE" });
var data = valueRanges.map(({ values }, i) => {
var values = values.map(([v]) => {
var unixTime = (v - 25569) * 86400 * 1000; // Ref: https://stackoverflow.com/a/6154953
var temp = new Date(unixTime);
temp.setMonth(temp.getMonth() + 1);
var serialNumber = (temp.getTime() / 1000 / 86400) + 25569; // Ref: https://stackoverflow.com/a/6154953
return [serialNumber];
});
return { range: ranges[i], values };
});
Sheets.Spreadsheets.Values.batchUpdate({ data, "valueInputOption": "USER_ENTERED" }, ssId);
}
我试着去掉unixTime和Serial Number变量,但它不起作用。
1条答案
按热度按时间vjhs03f71#
从您提供的电子表格中,时区偏移可能与您当前的问题有关。那么,作为一个修改,下面的修改怎么样?
发件人:
收件人:
10/1/23
更改为11/1/23
。