MomentJS在服务器上以不同方式比较日期

时间:2016-11-04 01:09:55

标签: javascript node.js date timezone momentjs

我想按天分组事件。在开发环境(巴西)中,它正确地执行了组,但在服务器(USA)上没有。它将事件发生在第二天开始的一天结束时。我想这与时区有关。

事件的日期采用以下格式:

  

2016-11-03T18:00:00-0200

以下是我的代码,我尝试了一些方法来解决这个问题,但不能。我使用MomentJS来处理日期。事件必须按天分组,而不管时区,偏移量或其他任何内容。

const events = [];
_.forEach(ungroupedEvents, event => {
    const date = moment(event.start_time, moment.ISO_8601);
    const period = _.find(events, period => date.isSame(period.date, 'day'));
    if (period) {
        period.events.push(event);
    } else {
        events.push({
            date: date.format('L'),
            events: [event]
        });
    }
});

我怎样才能做到这一点?我整天都没有取得任何进展。 :(

1 个答案:

答案 0 :(得分:1)

您可以尝试使用moment-timezone,并在每个步骤验证日期格式为UTC,输入/输出是否正确,适合时区(UTC / GMT)。

或者,我认为这是最好的,使用getTime()来获取MS,因为epoch,store和group使用那个大数字(你可以使用mod%来获取纪元以来的日子)。