1 回答

TA貢獻1810條經驗 獲得超5個贊
問題/解釋:
在這部分代碼中:
date_new = date_given;
您傳遞了對的引用。date_given
date_new
即,您所做的任何更改date_new
都會自動應用,date_given
因為它們引用相同的日期對象。
當您將日期遞增 1 時:
date_new = new Date(date_new.setDate(date_new.getDate() +1 ));
那個部分:date_new.setDate(date_new.getDate() +1 )
增量(更改)date_new
,因此date_given
也被修改,因為它們都引用同一個對象。
這就是為什么date_new
和date_given
返回相同的值。
為了將它們分開,您需要創建一個副本,其中date_given
將是一個新的日期對象:
date_new = new Date(date_given);
因此,如果您以后修改date_new
,date_given
將不會被修改。
解決方案:
function testDate() {
var sht_test = SpreadsheetApp.getActive().getSheetByName('Test');
var date_given = sht_test.getRange(1,1).getValue(); // type a Date in cell A1
var date_new;
date_new = new Date(date_given);
date_new = new Date(date_new.setDate(date_new.getDate() +1 ));
sht_test.getRange(2,1).setValue(date_new);
sht_test.getRange(2,2).setValue(date_given);
}
添加回答
舉報