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

标签 javascript node.js date timezone momentjs

我想按天对事件进行分组。在开发环境(巴西)中,它可以正确地进行分组,但在服务器(美国)上则不然。它将一天结束时发生的事件放在第二天开始时。我想这与时区有关。

事件日期采用以下格式:

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]
        });
    }
});

我怎样才能实现这个目标?我一整天都没有取得任何进展。 :(

最佳答案

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

或者,我认为这是最好的,使用 getTime() 获取自纪元以来的 MS,使用该大数字进行存储和分组(您可以使用 mod % 获取自纪元以来的日期)。

关于javascript - MomentJS 在服务器上以不同方式比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40413793/

相关文章:

javascript - Javascript 中的数组相交

java - 在使用 Map.Entry<String, Map<Date, List<SomeObject>>> 的三个 for-each 叠瓦式中,当我迭代时为什么在第二个 for-each 循环中出现异常?

javascript - 如何在sql中使用时间戳字符串查询日期时间戳字段

javascript - Angular JS-指令日期三字段,无需 JQuery

javascript - 在页面末尾加载 jQuery?

javascript - 在 data-ajax-success 调用中以编程方式在 ValidationSummary 中添加错误

node.js - 发出 'stop'事件后如何中止异步功能

javascript - 使用 Immutable JS 映射时如何设置多个对象值

javascript:如何在文件下载之前显示微调器

javascript - NodeJS 需要来自未知的子文件夹