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

Tam*_*dav 3 date google-api google-apps-script

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

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());
Run Code Online (Sandbox Code Playgroud)

我所看到的是,月份日期以浮动"6.0"形式出现,无论我在setDate行中为monthlyDate输入什么,它都会将日期设置为10/9/15(今天是15年10月15日).我已经将这个值硬编码为许多不同的数字,但由于某种原因它只是不起作用.

如何创建遵循"Speadsheet/Current Year当前月/日"计划的日期(任何格式)?

Ala*_*lls 5

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

文档 - setDate()

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

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

var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
Run Code Online (Sandbox Code Playgroud)

month参数从接受值011,0是Jan11Dec

日期参考