我想按天对事件进行分组。在开发环境(巴西)中,它正确地进行了分组,但在服务器(美国)上却不是这样。它把发生在一天结束时的事件放在第二天的开始。我想这和时区有关。
事件日期格式如下:
2016 - 11 - 03 - t18: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]
});
}
});
我怎样才能做到这一点?我忙了一整天,却没有任何进展。(
您可以尝试使用moment-timezone
并在每个步骤中验证日期是否被格式化为UTC并正确输入/输出正确的时区(UTC/GMT)。
或者,我认为这是最好的,使用getTime()来获取MS自epoch以来,使用大数字存储和分组(您可以使用mod %来获取自epoch以来的天数)。