2017-08-15 128 views
0

我有一个这样的数组,[0,1,2,3 .. 23],它们表示一天中的小时。如何使用瞬间js将它们转换为12小时,然后做日期范围?根据整数生成日期范围

我的愿望输出

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

我的尝试失败了怎么我觉得我不需要时刻https://jsfiddle.net/s4L7hj1a

+0

请张贴代码与尝试 –

+0

@MaximShoustin做,你可以将它们添加在数组中。 –

回答

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)); 
 
});

+0

我不明白这行'小时%12?小时%12:12', –

+0

@CeciliaChan它用于将24h时间转换为12h。 –

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 

那么,只要你喜欢