所以我一直在创建日历应用程序,我想获取当前一周的所有日期。我创建了一个函数来执行此操作,它似乎在我的react应用程序中很好地在客户端工作。我可以添加一个“偏移”变量,该变量以7为增量递增或递减,以获取上周或下周等信息……
当我使用此功能服务器端时,会得到完全不同的日期数组。我不是最适合使用javascript日期,但是我不明白为什么这不起作用。这些日期将传递到Google Calendar api,以设置用于检索事件的最小和最大时间。
客户端:
let current = new Date();
let week= [];
current.setDate((current.getDate() - current.getDay() + this.state.weekOffset));
for (var i = 0; i < 7; i++) {
week.push(
new Date(current)
);
current.setDate(current.getDate() +1);
}
console.log(week);
return week;
结果:(7)[2019年7月14日星期日20:01:50 GMT-0400(东部夏令时间),2019年7月15日星期一20:01:50 GMT-0400(东部夏令时间)2019年7月16日星期二20 2019年7月17日,星期三:01:50 GMT-0400(东部夏令时间),2019年7月18日星期四20:01:50 GMT-0400(东部夏令时间),星期五2019年7月19日20:01:50 GMT-0400(东部夏令时间),星期六7月20日20:01:50 GMT-0400(东部夏令时间)]
服务器端: 注意:我将日期传递给Google Api的方式只是一个示例。一旦确定,我将使其更合适并删除for循环。
const offset = req.query.offset ? req.query.offset : 0;
let current = new Date();
let week= [];
current.setDate((current.getDate() - current.getDay() + offset));
for (var i = 0; i < 7; i++) {
week.push(
new Date(current)
);
current.setDate(current.getDate() +1);
}
console.log(week);
calendar.events.list({
calendarId: 'primary',
timeMin: week[0],
timeMax: week[6],
singleEvents: true,
orderBy: 'startTime',
}, (err, events) => {
if (err) console.log(err);
res.send(events.data.items)
});
结果:[2019-11-18T01:01:50.793Z, 2019-11-19T01:01:50.793Z, 2019-11-20T01:01:50.793Z, 2019-11-21T01:01:50.793Z, 2019-11-22T01:01:50.793Z, 2019-11-23T01:01:50.793Z, 2019-11-24T01:01:50.793Z]