相同的函数在React vs Express中返回不同的日期

时间:2019-07-18 00:12:27

标签: javascript reactjs date express google-calendar-api

所以我一直在创建日历应用程序,我想获取当前一周的所有日期。我创建了一个函数来执行此操作,它似乎在我的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]

0 个答案:

没有答案