根据日期将时间分成块

时间:2016-02-17 14:11:24

标签: javascript date momentjs

我有两个日期,如下面

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')

但不知道如何从这里开始

1 个答案:

答案 0 :(得分:2)

使用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');`