转换简单的军事小时标准时间

时间:2016-01-23 22:34:22

标签: javascript

我有一个以军事时间表示的时间范围,例如:

10-14 

我需要让它看起来像这样:

10:00 am - 2:00 pm

我想出了类似的东西,但我认为它有点过于复杂。可以进一步简化吗?



var hrFr = "10",
    hrTo = "14";

var t  = (hrFr > 12 ? hrFr - 12 : hrFr) + ':00';
    t += (hrFr >= 12 ? ' pm' : ' am') + ' - '
    t += (hrTo == 24 ? ' midnignt' : (hrTo > 12 ? hrTo - 12 : hrTo) + ':00' +  (hrTo >= 12 ? ' pm' : ' am'));
    
alert(t);




2 个答案:

答案 0 :(得分:1)

假设它们总是整数,可能需要打扮一下几分钟

function adjustTime(hrTo)
{
    return ((hrTo == 24 || hrTo == 0) ? ' midnight' : (hrTo > 12 ? hrTo - 12 : hrTo) + ':00' + (hrTo >= 12 ? ' pm' : ' am'));
}

我更喜欢这个,因为如果规格发生变化,你不必重新分析往返,只需要函数

答案 1 :(得分:0)

你不应该重复转换:

function convHour( hr ) {
    return (hr == 24 ? 'midnight' : (hr > 12 ? hr - 12 : hr) + ':00' +  (hr >= 12 ? ' pm' : ' am')
}

var t = convHour( hrFr ) +  ' - ' + convHour( hrto );