1 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
問(wèn)題/解釋:
在這部分代碼中:
date_new = date_given;
您傳遞了對(duì)的引用。date_given
date_new
即,您所做的任何更改date_new
都會(huì)自動(dòng)應(yīng)用,date_given
因?yàn)樗鼈円?strong>相同的日期對(duì)象。
當(dāng)您將日期遞增 1 時(shí):
date_new = new Date(date_new.setDate(date_new.getDate() +1 ));
那個(gè)部分:date_new.setDate(date_new.getDate() +1 )
增量(更改)date_new
,因此date_given
也被修改,因?yàn)樗鼈兌家猛粋€(gè)對(duì)象。
這就是為什么date_new
和date_given
返回相同的值。
為了將它們分開(kāi),您需要?jiǎng)?chuàng)建一個(gè)副本,其中date_given
將是一個(gè)新的日期對(duì)象:
date_new = new Date(date_given);
因此,如果您以后修改date_new
,date_given
將不會(huì)被修改。
解決方案:
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);
}
添加回答
舉報(bào)