根据整数生成日期范围

时间:2017-08-15 07:27:50

标签: javascript datetime momentjs

我有一个像[0,1,2,3 .. 23]这样的数组,它们意味着一天一小时。如何使用时刻js将它们转换为12小时然后进行日期范围?

我的愿望输出是

['12am-1am','1am-2am','2am-3am' .. 11pm-12am]

我的尝试失败因为我认为我不需要时刻https://jsfiddle.net/s4L7hj1a

2 个答案:

答案 0 :(得分:2)

你不需要moment.js

var getFormattedHour = function(hour) {
  return (hour % 12 ? hour % 12 : 12) + ':00 ' + ((hour < 12) || (hour >= 24) ? 'AM' : 'PM');
}

var getHourRange = function(hour) {
    return getFormattedHour(hour) + ' - ' + getFormattedHour(hour + 1);
}

var hours = [];
for(var hour = 0; hour < 24; hour++) {
  hours.push(hour);
}

hours.map(function(hour) {
  console.log(getHourRange(hour));
});

答案 1 :(得分:1)

使用moment.js:

const moment = require('moment');

const start = moment().startOf('day');

const times = 24; // 24 hours   

for (let i = 0; i < times; i++) {
    const toPrint = moment(start)
        .add(60 * i, 'minutes')
        .format('hh:mm A');

         console.log(toPrint);
}

这将给你哟:

12:00 AM 
01:00 AM 
02:00 AM 
... 
...
10:00 PM 
11:00 PM 

然后您可以根据需要将它们添加到数组中