2013-11-25 50 views
0
var foo = '1:00 pm' 
var bar = to24Hour(foo); //bar would be 1300 

function to24Hour(time) { 
    time.match('(\d+):(\d+) ([ap]m)'); 
    if ($1 > 12 && $3 = pm) { 
    $1 = 12 + $1; 
    } 
    return $1.$2; 
} 

我試圖將12小時時間轉換爲24小時「軍事」時間(即無冒號)。我遇到了正則表達式捕獲組和javascript的問題,但以上是我認爲應該工作。轉換時間字符串(例如上午9:00)到24小時(0900)

有人可以告訴我正確的方法嗎?

+1

在JavaScript中沒有'正常的方式'來更改日期格式嗎? – Tafari

+5

你爲什麼不看看moment.js? http://momentjs.com/ – Kroltan

+1

您是否正在尋找:http://jsfiddle.net/aHZYL/?只是一個簡單的例子。 – nkmol

回答

1

我認爲你誤解了正則表達式組......這應該起作用。

function to24Hour(time) { 
    var hour, groups = (/(\d+):(\d+) ([ap]m)/i).exec(time); 

    hour = parseInt(groups[1], 10); 

    if (hour < 12 && groups[3] === "pm") { 
    hour += 12; 
    } 

    return hour.toString() + groups[2]; 
} 
相關問題