【问题标题】:moment divide time into chunks based on dates时刻根据日期将时间分成块
【发布时间】:2016-02-17 14:11:23
【问题描述】:

我有两个日期,如下所示

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

但不知道如何从这里开始

【问题讨论】:

  • 到目前为止你做了什么?
  • @FlorianLemaitre 已更新,我能够了解日期之间的差异,但不知道如何从那里着手

标签: javascript date momentjs


【解决方案1】:

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

【讨论】:

  • 你能说得更具体一些吗
  • 只是尝试将开始时间更改为2016-02-18T21:00:00+00:00,但它不起作用
猜你喜欢
  • 1970-01-01
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
  • 2018-09-14
相关资源
最近更新 更多