我有两个约会如下

2016-02-18T22:00:00+00:00 - 2016-02-19T02:00:00+00:00

这些是我得到的开始和结束日期

在这里我想将日期分成两个范围,如下所示
2016-02-18T22:00:00+00:00 - 2016-02-19T00:00:00+00:00
2016-02-19T00:00:00+00:00 - 2016-02-19T02:00:00+00:00

我正在使用momentjs库,在这里有帮助吗?

我可以使用以下方法获得两个日期之间的差异
moment(b).startOf('day').diff(moment(a).startOf('day'),'days')

但不知道如何从这里继续

最佳答案

使用diff()函数是一个好主意,然后仅用毫秒数计算结果,我会这样做:

  • 计算2个日期的差异:毫秒
  • 计算差异的一半
  • 将差异的一半添加到第一个日期

  • https://jsfiddle.net/darul75/ot3p1ytj/2/
        var first = moment.utc('2016-02-18T22:00:00+00:00');
        var second = moment.utc('2016-02-19T02:00:00+00:00');
    
        // compute diff in ms
        var diffInMs = Math.abs(moment(first).diff(second));
        // half
        var middleGap = diffInMs / 2;
    
        var middleDate = moment(first).add(middleGap, 'ms');`
    

    10-05 20:31
    查看更多