2015-10-15 71 views
3

我有一個電子表格,要求人們在每個月的某一天輸入我們需要發送帳單的日期。我想要做的是基於此創建日曆事件。所以,我需要的是一個事件,從當前的月份開始,從電子表格開始,然後繼續到指定的時間點。如何在Google腳本中創建特定日期

var monthlyDate = row[6]; // Seventh column, monthly date of payment 
var curDate = new Date(); 
var curMonth = curDate.getMonth(); 
var curYear = curDate.getYear(); 
curDate.setDate(curMonth, monthlyDate, curYear); 
Logger.log("Day of month: %s", monthlyDate); 
Logger.log("Current Date: %s", curDate); 
Logger.log("Current Date: %s", Date()); 

我所看到的是,每月的日期快到了作爲一個浮動「6.0」爲例,不管我在的setDate行中輸入在monthlyDate,它保持設定日期到10/9/15(今天是2015年10月15日)。我已經將這個值硬編碼爲許多不同的數字,但由於某種原因,它只是不起作用。

如何創建一個遵循方案「當前月/每天從Speadsheet /當年」的日期(以任何格式)?

回答

4

getMonth()方法返回一個「零索引」數字。因此,它返回第10個月的數字9。 setDate()不設置日期,它設置「每月的日子」。該方法的名稱具有誤導性。

Documentation - setDate()

所以,最後的兩個參數是您使用的是setDate()什麼都不做。你是該月的一天設置爲9

如果你想在同一時間設置多個日期參數,你需要使用new Date()方法:

var d = new Date(year, month, day, hours, minutes, seconds, milliseconds); 

month參數從0接受值到11,0是Jan11Dec

Date Reference

+0

好的,這是很有意義的。我將如何使用新的Date()函數來設置當前日期,唯一的例外是實際的* day *?如同,在年份和月份我需要付出什麼?顯然,我不想硬編碼2015,10。 –

+0

如果您只想改變當前月份的日期,您仍然可以使用'setDate()',但您需要輸入正確的數字。您從該行的索引6獲取日期。如果該日期值已經是日期格式,請使用'var newDayNumber = monthlyDate.getDate(); curDate.setDate(newDayNumber);' –

相關問題