簡體   English   中英

如何使用javascript將時間從24小時格式轉換為12小時格式?

[英]How to convert time from 24 hour format to 12 hour format using javascript?

該函數以 24 小時格式返回時間。

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

以 24 小時格式返回時間。 我希望將時間轉換為 12 小時格式。
任何幫助將不勝感激。
謝謝。

只需使用模數 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 (am) 或等於/大於 (pm) 來輕松添加子午線:

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 之間的整數。

您可以嘗試以下操作:

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

如果你有這樣的時間"16:26", "12:50", "05:23"等。然后,你可以輕松地將它們轉換為 12 小時格式,如"4:26 PM", "12 :50 PM", "05:23 AM"等通過此功能與 AM/PM。

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

我很確定這將作為 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');
}

另一個 Javascript 函數將 24 小時轉換為 12 小時,但與這個問題的所有其他答案不同,這個函數很容易閱讀。

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM