0
我試圖根據給定的日期返回不同的日子,例如一週中的第一個星期一,本週的星期五以及之前和之後幾周的日子,以便我可以計算出開始和結束(我的兩份工作,每份都不同)以及那段期間的付款日期。爲什麼刪除一行會影響下一行?
當我刪除Logger.log("Prev Monday > " + addDays(pMonday, -7));
下一行的值發生變化。被刪除的行是爲了弄亂下面的行?
我在Google應用程序腳本中使用此功能,因此我可以輕鬆地將數據從Google日曆中提取到Google表格。這也意味着沒有額外的庫。
function test_monday(){
var theDate = new Date();
theDate.setDate(16);
theDate.setMonth(5);
theDate.setFullYear(2016);
theDate.setHours(12,0,0,0)
Logger.log(theDate);
var pMonday = new Date();
pMonday = getMonday(theDate) ;
Logger.log("pMonday: " + pMonday)
Logger.log("Prev Monday > " + addDays(pMonday, -7));
Logger.log("Following Friday > " + addDays(pMonday, 4));
}
function getMonday(date) {
var day = date.getDay() || 7;
if(day !== 1)
date.setHours(-24 * (day - 1));
return date;
}
function addDays(d, n){
var date = new Date();
date = d;
var offset = n;
date.setHours(24 * (offset));
return date;
}
好,所以當我值傳遞給函數它已經被宣佈我被搞亂這事呢? – ThatChrisGuy
@ThatChrisGuy號每當你傳入'pMonday'時,你都在修改這個值。它仍然是您傳入的同一對象實例,但它所代表的日期已更改。你正在爲它增加'24 * offset'小時。如果你在調用'addDays'之前和之後執行'console.log(pMonday)',你會明白我的意思。 –
你沒有傳遞一個值,你傳遞一個參考。不是超一致或清晰,但這就是javascript的:) –