如何从特定小时开始,以特定分钟间隔创建小时数组

时间:2019-05-08 13:09:40

标签: angular typescript time

使用typescript(Angular),我想获取一天中所有小时的列表,其中所传递的分钟数差异小于所传递的时间。

下面是我当前的代码:

打字稿文件

  ngOnInit()
  {
    this.dayaHours =   this.getHours("15", "10:00:00")
  }
    getHours(step, yourTime) {

    const slotArray = [];
    const startMinutes = yourTime ? this.howManyMinutesPassed(yourTime) : 0;
    const parsedSlotSize = parseInt(step.toString(), 10);


    for (let i = startMinutes; i <= 24 * 60; i += parsedSlotSize) {
      slotArray.push({
        time: this.convertMinutesToTimeFormat(i),
        minutes: i,
      });
    }

    return [...slotArray];
  }

  howManyMinutesPassed(time) {
    const [hour, minutes] = time.split(':').map((value) => parseInt(value, 10));
    return hour * 60 + minutes;
  }

  public convertMinutesToTimeFormat(mins) {
    let h: string | number = Math.floor(mins / 60);
    let m: string | number = mins % 60;
    h = h < 10 ? '0' + h : h;
    m = m < 10 ? '0' + m : m;
    return `${h}:${m}:00`;
  }


  formatTime(time)
  {

    const H = +time.substr(0, 2);
    const h = H % 12 || 12;
    const ampm = (H < 12 || H === 24) ? " AM" : " PM";
    return h + time.substr(2, 3) + ampm;

  }

HTML代码:

<div *ngFor="let time of dayaHours"><p>{{formatTime(time.time)}}</p></span><br><br></div>

当选择的时间大于12:00 AM时,我想限制在阵列中添加24:00。

请参阅Demo stackblitz

更新:

使用上面的代码:

如果我使用getHours函数

getHours('10', '12:00')
  

输出:[ 12:00 AM ,12:10 AM,12:20 AM,12:30 AM,12:40 AM,12:50   AM,1:00 AM ......等等,11:00 PM,11:10 PM,11:20 PM,11:30 PM,11:40   PM,晚上11:50, 12:00 AM ]

在上述情况下,我不想再有12:00 AM。 如果我将时间10:00传递给getHours函数,也会发生同样的情况。

类似的问题javascript-generate-array-of-hours-in-the-day-starting-with-current-hour

谢谢

0 个答案:

没有答案