将时间字符串(例如上午 9:00)转换为 24 小时 (0900)

Converting time string (e.g. 9:00 am) to 24 hour (0900)

本文关键字:转换 0900 小时 字符串 时间      更新时间:2023-09-26
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];
}