【发布时间】:2016-09-20 18:54:41
【问题描述】:
标题可能有点混乱,但我会详细解释。我在 UI 中有一个表格,用户可以从那里选择日期范围;
星期一 - {in:"13:00:00",out:"13:59:59"}
星期二 - [{in:"13:00:00",out:"13:59:59"},{in:"14:00:00",out:"14:59:59"}]
用户一天只能选择多个小时的间隔。我已经根据日期对间隔进行了分组,并结合了间隔,如
星期二- [{in:"13:00:00",out:"14:59:59"},{in:"14:00:00",out:"14:59:59"}]
在第一次迭代中。但我不知道如何让它超过 4 或 5 小时的间隔。仅供参考,我使用 lodash 进行排序和分组,以及将时间转换为 int 的时刻。
如果用户在星期二输入 5 个间隔,例如 [{in:"13:00:00",out:"13:59:59"},{in:"14:00:00",out:"14: 59:59"},{in:"15:00:00",out:"15:59:59"},{in:"18:00:00",out:"18:59:59"}, {in:"19:00:00",out:"19:59:59"}]
我希望将范围组合为 ;
[{in:"13:00:00",out:"15:59:59"},{in:"18:00:00",out:"19:59:59"}]
任何帮助或建议将不胜感激。
【问题讨论】:
-
更新了问题
-
一个范围与另一个范围不同的最小时间单位是多少?一秒?范围只是
Date实例的数组吗?还是它们是字符串/数字/其他? -
我使用 moment.valueOf() 将小时转换为 int 毫秒并进行比较 if ((item[i+1].in-item[i].out)
-
您尝试生成时间片的联合,但是
[{in:"13:00:00",out:"14:59:59"},{in:"15:00:00",out:"15:59:59"}]有一秒钟的间隔,因此它们不会相交。那个怎么样..?当然它仍然可以完成,但我想[{in:"13:00:00",out:"15:00:00"},{in:"15:00:00",out:"16:00:00"}]对于编码器和用户来说可能更有意义。 -
我使用的是 24 小时制,所以你提到的事情会在我的用例中引发错误。
标签: javascript arrays node.js object