时刻将时间根据日期分成块。

5
我有两个日期如下:
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
你到目前为止尝试了什么? - Florian Lemaitre
@FlorianLemaitre 更新了,我已经能够获取日期之间的差异,但不知道该如何继续。 - user555
1个回答

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

你能否提供一些具体的场景来详细说明吗? - darul75
尝试将开始时间更改为“2016-02-18T21:00:00+00:00”,但无法正常工作。 - user555

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接