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



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

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

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

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

我更喜欢这个,因为如果规格发生变化,您不必重新解析 to 和 from,只需重新解析函数

您避免复制转换:

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

最新更新