如何使用javascript将时间从24小时格式转换为12小时格式?

时间:2012-02-29 10:53:22

标签: javascript time

该函数以24小时格式返回时间。

function fomartTimeShow(h) {
    return h < 10 ? "0" + h + ":00" : h + ":00";
}

以24小时格式返回时间。我希望时间以12小时格式转换 Anyhelp将不胜感激 感谢。

6 个答案:

答案 0 :(得分:13)

使用模数12:

function formatTimeShow(h_24) {
    var h = h_24 % 12;
    return (h < 10 ? '0' : '') + h + ':00';
}

模数(%)表示除以并取余数。例如17/12 = 1,其余为5.因此17%12的结果为5.而17小时是12小时内的小时5。

但请注意,此功能未完成,因为它不适用于小时0(或小时12)。要修复它,你必须添加另一个检查:

function formatTimeShow(h_24) {
    var h = h_24 % 12;
    if (h === 0) h = 12;
    return (h < 10 ? '0' : '') + h + ':00';
}

另请注意,您可以通过查看小时是小于12(上午)还是等于/大于(下午)来轻松添加子午线:

function formatTimeShow(h_24) {
    var h = h_24 % 12;
    if (h === 0) h = 12;
    return (h < 10 ? '0' : '') + h + ':00' + (h_24 < 12 ? 'am' : 'pm');
}

注意:以上所有假设此函数的参数是0到23之间的整数。

答案 1 :(得分:2)

您可以尝试以下内容:

function fomartTimeShow(h) { 
    var ampm = "am"
    if (h >= 12)
        ampm = "pm"
    h = h % 12;
    if (h == 0)
     h = 12;
    return h ":00" + ampm; 
}

答案 2 :(得分:1)

function fomartTimeShow(h) {
    var s = (h % 24 < 12) ? "am" : "pm", h = h % 12 || 12;
    return (h < 10 ? "0" + h : h)  + ":00" + " " + s;
}

答案 3 :(得分:1)

如果您有这样的时间“ 16:26”,“ 12:50”,“ 05:23” ,等等。 然后,您可以通过此功能将它们轻松转换为12小时格式,例如“ 4:26 PM”,“ 12:50 PM”,“ 05:23 AM” 等。

function convertTo12Hour(oldFormatTime) {
    console.log("oldFormatTime: " + oldFormatTime);
    var oldFormatTimeArray = oldFormatTime.split(":");

    var HH = parseInt(oldFormatTimeArray[0]);
    var min = oldFormatTimeArray[1];

    var AMPM = HH >= 12 ? "PM" : "AM";
    var hours;
    if(HH == 0){
      hours = HH + 12;
    } else if (HH > 12) {
      hours = HH - 12;
    } else {
      hours = HH;
    }
    var newFormatTime = hours + ":" + min + " " + AMPM;
    console.log(newFormatTime);
}

答案 4 :(得分:0)

我很确定这可以作为Ben Lee答案的更简洁的公式化版本,包括h = 0和h = 12的案例:

function fomartTimeShow(h_24) {
    var h = ((h_24 + 11) % 12)+1;
    return (h < 10 ? '0' : '') + h + ':00';
}

或包括上午/下午:

function fomartTimeShow(h_24) {
    var h = ((h_24 + 11) % 12)+1;
    return (h < 10 ? '0' : '') + h + ':00' + (h_24 < 12 ? 'am' : 'pm');
}

答案 5 :(得分:0)

另一个将 24 小时转换为 12 小时的 Javascript 函数,但与此问题的所有其他答案不同,这个函数易于阅读。

function timeTo12(time){

  var parts = time.split(':');
  var hours = parseInt(parts[0]);
  var minutes = parts[1];

  if(hours >= 12){
    var newhours = parseInt(hours) - 12;
    var meridiem = "pm";
  }else{
    var newhours = parseInt(hours);
    var meridiem = "am";
  }

  if(newhours == 0) newhours = "12";
  var newtime = newhours + ":" + minutes + " " + meridiem;

  return newtime;
}