2013-11-25 28 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]; 
} 
相关问题