如何在Google Script中创建特定日期

时间:2015-10-15 23:57:09

标签: date google-apps-script google-api

我有一个电子表格,要求人们在我们需要发出账单的那个月的某一天进入。我想要做的是根据它创建一个日历事件。所以,基本上我需要的是一个从当前月份开始的事件,从电子表格开始,并持续到指定的时间点。

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 / Current Year当前月/日”计划的日期(任何格式)?

1 个答案:

答案 0 :(得分:5)

getMonth()方法返回"零索引"数。因此,它返回第10个月的数字9。 setDate()没有设置日期,它会设置"月中的日期"。该方法的名称具有误导性。

Documentation - setDate()

因此,您在setDate()中使用的最后两个参数无效。您将该月的日期设置为9。

如果要同时设置多个日期参数,则需要使用new Date()方法:

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

month参数接受011的值,0为Jan11Dec

Date Reference