簡體   English   中英

什么是在javascript中將上午/下午時間轉換為24小時時間的簡單方法

[英]What's a simple way to convert between an am/pm time to 24 hour time in javascript

我一直在玩jquery,我遇到了一個時間問題。 我有3個時間輸入選擇框,一個用於小時,一個用於分鍾,一個用於Meridian。 我需要將此時間轉換為24小時字符串格式,然后將其粘貼到隱藏的輸入中。

var time = "";
time += $("#EventCloseTimeHour option:selected").text();
time += ":" + $("#EventCloseTimeMin option:selected").text() + ":00";
time += " " + $("#EventCloseTimeMeridian option:selected").text();

$("#ConditionValue").val(time);         

這給了我“1:30:00 pm”,我需要“13:30:00”。 任何快速的javascript時間提示?

tj111建議示例:

$("#ConditionValue").val(
    (
        new Date(
            "01/01/2000 " + 
            $("#EventCloseTimeHour option:selected").text() +
            $("#EventCloseTimeMin option:selected").text() + ":00" +
            " " +
            $("#EventCloseTimeMeridian option:selected").text()
        )
    ).toTimeString().slice(0,8))
;

或者您可以使用:

hour = hour %12 + (meridian === "AM"? 0 : 12);
hour = hour < 10 ? "0" + hour : hour;  

您應該查看本機JavaScript Date Object方法。

var time = "";
var hour = Number($("#EventCloseTimeHour option:selected").text())%12 + ($("#EventCloseTimeMeridian option:selected").text() == 'PM'?12:0)) ;


time +=("00"+String(hour)).slice(-2)+":"+ $("#EventCloseTimeMin option:selected").text();

這個解決方案的關鍵是使用條件運算符“a?b:c”,它轉換為“if a then b else c”

只是為了添加一個簡單的JS答案,下面將根據初始字符串的長度格式化時間。 如果h:mm返回HH:mm,如果h:mm:ss返回HH:mm:ss。

如果總是需要HH:mm:ss,如果初始字符串中不存在,則添加“:00”的默認秒是很簡單的。

 // Change time in h:mm:ss ap to HH:mm:ss time // If time missing seconds, returns HH:mm function timeToHHmm(time) { var nums = time.match(/\\d+/g); var am = /am/i.test(time); nums[0] = ('0' + ((nums[0]%12) + (am? 0 : 12))).slice(-2); // If HH:mm:ss required, use following line instead of last // return nums.join(':') + (nums.length == 2? ':00' : ''); return nums.join(':'); } // Some tests ['2:45am', // hh:mm only '5:15:45pm', // hh:mm:ss '5:15:45 pm', // space before am/pm '05:15:45 pm',// leading zero on hour '12:02am', '12:02 pm', '12:02:00am' ].forEach(function(time) { console.log(time + ' => ' + timeToHHmm(time)); }); 

我得到了一些人的答案。

var time = "";
var hour = Number($("#EventCloseTimeHour option:selected").text());
if($("#EventCloseTimeMeridian option:selected").text() == 'PM'){
    hour = String((hour%12) + 12);
}
hour = hour < 10 ? "0" + hour : hour;
time +=hour+":"+ $("#EventCloseTimeMin option:selected").text() + ":00";

暫無
暫無

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

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