分享
三行代码  ›  专栏  ›  技术社区  ›  Chirag Arora

使时间循环递增

  •  0
  • Chirag Arora  · 技术社区  · 3 天前

    (只有几个小时)

    预期结果:-

    早上0点到1点,

    12: 下午00:00-下午13:00依此类推

    20: 下午00:00-21:00直到

    下午23:00-24:00。

    我所做的

    let time = [];
    for (let i = 0; i <= 23; i++) {
      /*
       ** padStart function which adds 0 to the start **
       ** to make it two digit if the time is in 1 digit. **
       ** it adds 0 to single digit numbers(1 will become 01, 2 will become 02 etc) **
       */
      let timeString = "";
      timeString += (i + ":00").padStart(2, "0") + ((i < 12) ? " AM - " : " PM - ") + (i + 1 + ":00").padStart(2, "0") + (((i + 1) >= 12) ? " PM " : " AM ");
      time.push(timeString);
    }

    简而言之:- 谢谢。

    2 回复  |  直到 3 天前
        1
  •  2
  •   Nina Scholz    3 天前

    您可以使用一个函数来格式化时间,并首先填充不带冒号和零的时间,然后添加其余的时间。

    const
        format = time => time.toString().padStart(2, 0) + ":00 " + (time < 12 ? "AM" : "PM");
    
    let time = [];
    
    for (let i = 0; i < 24; i++) {
        time.push(format(i) + ' - ' + format(i + 1));
    }
    
    console.log(time);

    较短的方法 Array.from

    const
        format = time => time.toString().padStart(2, 0) + ":00 " + (time < 12 ? "AM" : "PM");
    
    let time = Array.from(
            { length: 24 },
            (_, i) => format(i) + ' - ' + format(i + 1)
        );
    
    console.log(time);
        2
  •  0
  •   Justinas    3 天前

    momentjs 以及转换成适当时间所需的循环时间

    let currentTime = moment('00:00:00', 'HH:mm:ss');
    let time = [];
    for (let i = 0; i <= 23; i++) {
      time.push(
          currentTime.format('HH:mmP') +
          ' - ' +
          currentTime.add(1, 'hour').format('HH:mmP')
      );
    }