利用moment计算时间的问题

需求大概是这样的:首先利用moment获取当前的时间,比如当前时间是:2021-05-11 16:05然后根据这个时间得到下面的数据格式

const dateArray = [
    ['2021-05-10 11:05 - 2021-05-10 16:05'],
    ['2021-05-10 17:05 - 2021-05-10 22:05'],
    ['2021-05-10 23:05 - 2021-05-11 04:05'],
    ['2021-05-11 05:05 - 2021-05-10 10:05'],
    ['2021-05-11 11:05 - 2021-05-11 16:05'],
]

也就是说dateArray里的每一项代表6个小时的时间范围
我这里计算不知道哪里有问题,导致死循环了,算出来的时候也不对

const et = moment();
const [initialParams, setinitialParams] = useState({
    endTime: et,
});
const headerData = new Array(5).fill([], 0, 6);
for (let i === headerData.length - 1; i >= 0; i--) {
    let st;
    let et;
    if ((i = headerData.length - 1)) {
      et = initialParams.endTime;
      st = et.subtract('300', 'm');
    } else {
      et = headerData[i + 1][0].subtract(60, 'm');
      st = et.subtract('300', 'm');
    }
    headerData[i] = [st, et];
阅读 2.4k
1 个回答

还是改错了
image.png
至于为什么都算到5月4号 因为你修改的值引用了都是同一个对象,所以结果都是最后一个修改的值,

修改了下
image.png
image.png

具体根据你自己的需求自己再改下吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题