moment 根据日期将时间分成块

use*_*555 5 javascript date momentjs

我有两个日期如下

2016-02-18T22:00:00+00:00 - 2016-02-19T02:00:00+00:00
Run Code Online (Sandbox Code Playgroud)

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

在这里我想将日期分为两个范围,如下所示

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
Run Code Online (Sandbox Code Playgroud)

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

我可以使用以下方法获得两个日期之间的差异

moment(b).startOf('day').diff(moment(a).startOf('day'),'days')
Run Code Online (Sandbox Code Playgroud)

但不知道如何从这里继续

dar*_*l75 3

使用 diff() 函数是一个好主意,然后只需处理毫秒结果,我会这样做:

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

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');`    
Run Code Online (Sandbox Code Playgroud)