Generate array of times (as strings) for every X minutes in JavaScript

后端 未结 15 1778
耶瑟儿~
耶瑟儿~ 2020-12-24 01:46

I\'m trying to create an array of times (strings, not Date objects) for every X minutes throughout a full 24 hours. For example, for a 5 minute interval the arr

15条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-24 02:09

    This snippet generates a range base on locale, so you do not need to handle AM/PM manually. By default, it will use browser language, but you can pass a user-selected one.

    function getTimeRanges(interval, language = window.navigator.language) {
        const ranges = [];
        const date = new Date();
        const format = {
            hour: 'numeric',
            minute: 'numeric',
        };
    
        for (let minutes = 0; minutes < 24 * 60; minutes = minutes + interval) {
            date.setHours(0);
            date.setMinutes(minutes);
            ranges.push(date.toLocaleTimeString(language, format));
        }
    
        return ranges;
    }
    
    console.log('English', getTimeRanges(30, 'en'));
    console.log('Russian', getTimeRanges(30, 'ru'));

提交回复
热议问题