Как создать массив часов, начиная с определенного часа с определенным интервалом минут - PullRequest
0 голосов
/ 08 мая 2019

Используя машинопись (угловую), я хочу получить список всех часов дня с разницей в минутах и ​​с меньшим, чем пройденное время.

Ниже мой текущий код:

машинописный файл

  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>

Я хочу ограничить добавление 24:00 в мой массив, если выбранное время больше 12:00.

Пожалуйста, обратитесь Демонстрация стекаблиц

UPDATE:

Используя код выше:

Если я использую функцию getHours

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

Вывод: [ 12: 00 * , 00:10, 00:20, 12:30, 00:40, 12:50 AM, 1:00 AM ...... и так далее, 11:00 PM, 23:10 PM, 23:20 PM, 23:30 PM, 11:40 PM, 23:50 12:00 AM ]

В приведенном выше случае я не хочу снова иметь 12:00 утра. То же самое происходит, если я передаю время 10:00 функции getHours и т. Д.

Аналогичный вопрос javascript-генерировать-массив-часов-в-день-день-с-текущим-часом

Спасибо

...