我有以下代码。这是一个Apps脚本,可以在指定的两个日期之间获取所有Google日历事件。
$pdf = new Spatie\PdfToImage\Pdf('public/test/test.pdf');
$pdf = new \Spatie\PdfToImage\Pdf('public/test/test.pdf');
目前,这两个日期是硬编码的,在宣布// from https://blog.ouseful.info/2010/03/05/grabbing-google-calendar-event-details-into-a-spreadsheet/
function caltest3(){
//http://www.google.com/google-d-s/scripts/class_calendar.html#getEvents
// The code below will retrieve events between 2 dates for the user's default calendar and
// display the events the current spreadsheet
var cal = CalendarApp.getDefaultCalendar();
var sheet = SpreadsheetApp.getActiveSheet();
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
var events = cal.getEvents(new Date("October 3, 2017 00:00:00"), new Date("October 3, 2017 23:00:00"));
for (var i=0;i<events.length;i++) {
//http://www.google.com/google-d-s/scripts/class_calendarevent.html
var details=[[events[i].getStartTime(), events[i].getEndTime(), events[i].getTitle(), events[i].getDescription()]];
var row=i+1;
var range=sheet.getRange(row,1,1,4);
range.setValues(details);
}
}
的行上。我将日期范围设置为相同日期,重点是前23个小时。
但是,由于脚本每天都会触发,我无法对这两个日期进行硬编码 - 它们应该都是动态的,反映当前的日期。
那么,代替硬编码日期,我如何以2017年10月3日和#34;格式&#34;格式&#34;就在那里,同时保留了硬编码的时间?
是的,我已经调查并阅读了Date object,但我似乎无法做出正确的表达方式。一些额外的信息应该可以帮助我更多地了解它。
答案 0 :(得分:4)
如果你看一下Date object
中的no-args构造函数如果没有提供参数,构造函数会创建一个JavaScript 根据系统的当前日期和时间的日期对象 设置。
你可以看到制作一个新的约会对象将为今天创建一个。请注意,该文档中还列出了getter / setter。因此,您可以创建一个新的Date对象,并将小时/分钟/秒设置为您想要的时间
let startDate = new Date();
startDate.setHours(0);
startDate.setMinutes(0);
startDate.setSeconds(0);
let endDate = new Date();
endDate.setHours(23);
endDate.setMinutes(0);
endDate.setSeconds(0);
答案 1 :(得分:0)
编辑:删除+1到月。最初是从副本&amp;粘贴原始代码。
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth(); //January is 0!
var yyyy = today.getFullYear();
var events = cal.getEvents(new Date(yyyy, mm, dd, 0, 0, 0), new Date(yyyy, mm, dd, 23, 0, 0));