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 时遇到问题,但以上是我认为应该有效的。
有人可以告诉我正确的方法吗?
我认为您错误地引用了正则表达式组...这应该有效。
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];
}