Задать вопрос
@Nivaech

Как коротко создать массив со строками времени?

Нужен подобный массив:

const timeMap = ['12:00 AM', '12:30 AM', '01:00 AM','01:30 AM','02:00 AM','02:30 AM','03:00 AM','03:30 AM','04:30 AM','05:00 AM','05:30 AM','06:00 AM', ...... "11:30 РМ"]

После 11:30 АМ должен стать РМ, начиная с 12,и соответственно после 11:30 РМ, снова должен вернуться АМ. Как решить подобную задачу, не прибегая к ручному написанию километрового массива?
  • Вопрос задан
  • 247 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Какого размера нужен массив, с каким интервалом должны быть времена и в каком виде:

const length = 48;
const step = 30;
const locale = 'en-US';
const options = {
  hour: '2-digit',
  minute: '2-digit',
};

Создаём:

const times = Array.from({ length }, (_, i) => {
  return new Date(0, 0, 0, 0, step * i).toLocaleTimeString(locale, options);
});

// или

const times = Array.from({ length }, function() {
  return this[1].format(this[0].setMinutes(this[0].getMinutes() + step));
}, [ new Date(0, 0, 0, 0, -step), new Intl.DateTimeFormat(locale, options) ]);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы