至尊寶的傳說
2022-10-27 15:45:43
我正在編寫一個腳本,在該腳本中我試圖使用數組和映射方法將 numdays 添加到谷歌表格中的數組中。下圖是數據示例function new_date() {var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();var lastRow = ss.getMaxRows(); var data = ss.getRange(2, 5, lastRow).getValues(); // Logger.log(data)var newData = data.map(adding_days);ss.getRange(2, 5, lastRow).setValues(newData); }function adding_days(row){ var millis_per_day = 1000 * 60 * 60 * 24; var days = 7 ; var date = new Date(row[0]); var date2 = Utilities.formatDate(date, "GMT+05:30" , "MM-dd-yyyy"); var numdays = days * millis_per_day return [ date2 + numdays ]; }當我運行代碼時,它只以另一種格式再次返回數據,我不明白為什么它不能將 numdays 添加到數據中。我是在應用程序腳本中使用數組的新手,所以我對這里出了什么問題感到非常困惑。提前致謝!
1 回答

翻翻過去那場雪
TA貢獻2065條經驗 獲得超14個贊
將年、月、日、小時、分鐘、秒和毫秒添加到日期
在這種特殊情況下,天數:
function new_date() {
const ss=SpreadsheetApp.getActive()
const sh=ss.getActiveSheet();
const v=sh.getRange(2,5,sh.getLastRow()-1,1).getValues();
const ndt=v.map(function(r,i){
let dt=new Date(r[0]);
let days=7;
return [new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()+days,dt.getHours(),dt.getMinutes(),dt.getMilliseconds())];
});
sh.getRange(2,5,ndt.length,ndt[0].length).setValues(ndt);
}
以毫秒為單位添加日期值的問題在于它確實補償了閏年等特殊情況。雖然這需要很長的一行,但它現在允許您通過簡單的整數數學將天數和小時數等直接添加到日期,方法是將其添加到日期構造函數的適當部分。
添加回答
舉報
0/150
提交
取消