Преобразование 24-часового времени к 12-часовому времени w/AM & PM с помощью JavaScript

То, что лучший способ состоит в том, чтобы преобразовать следующую JSON, возвратило значение от 24-часового формата до 12-часового формата w/AM & PM? Дата должна остаться такой же - время является единственной вещью, которая нуждается в форматировании.

February 04, 2011 19:00:00

P.S. Используя jQuery, если это делает его немного легче! Также предпочел бы простую функцию/код и не использовал бы Date.js.

57
задан 23 May 2014 в 12:43

2 ответа

Таким образом, Вы имеете больше контроля над выводом - т.е. - если Вы хотели, чтобы формат времени был '16:30' вместо '16:30' - можно преобразовать в любой формат, Вы решаете, что хотите - и изменяете его позже также. Вместо того, чтобы быть ограниченным к некоторому старому методу, который не позволяет гибкости.

и только необходимо преобразовать первые 2 цифры как минуту, и цифры секунд являются тем же в 24-часовое время или 12-часовое время.

var my_time_conversion_arr = {'01':"01", '02':"02", '03':"03", '04':"04", '05':"05", '06':"06", '07':"07", '08':"08", '09':"09", '10':"10", '11':"11", '12': "12", '13': "1", '14': "2", '15': "3", '16': "4", '17': "5", '18': "6", '19': "7", '20': "8", '21': "9", '22': "10", '23': "11", '00':"12"};

                var AM_or_PM = "";
                var twenty_four_hour_time = "16:30";
                var twenty_four_hour_time_arr = twenty_four_hour_time.split(":");
                var twenty_four_hour_time_first_two_digits = twenty_four_hour_time_arr[0];

                var first_two_twelve_hour_digits_converted = my_time_conversion_arr[twenty_four_hour_time_first_two_digits];

                var time_strng_to_nmbr = parseInt(twenty_four_hour_time_first_two_digits);
                if(time_strng_to_nmbr >12){
                    //alert("GREATER THAN 12");
                    AM_or_PM = "pm";
                }else{
                    AM_or_PM = "am";
                }

                var twelve_hour_time_conversion = first_two_twelve_hour_digits_converted+":"+twenty_four_hour_time_arr[1]+" "+AM_or_PM;
0
ответ дан 1 November 2019 в 15:14

Эта функция преобразует в обоих направлениях: 12 - 24 часа или от 24 до 12-часового

function toggle24hr(time, onoff){
    if(onoff==undefined) onoff = isNaN(time.replace(':',''))//auto-detect format
    var pm = time.toString().toLowerCase().indexOf('pm')>-1 //check if 'pm' exists in the time string
    time = time.toString().toLowerCase().replace(/[ap]m/,'').split(':') //convert time to an array of numbers
    time[0] = Number(time[0])
    if(onoff){//convert to 24 hour:
        if((pm && time[0]!=12)) time[0] += 12
        else if(!pm && time[0]==12) time[0] = '00'  //handle midnight
        if(String(time[0]).length==1) time[0] = '0'+time[0] //add leading zeros if needed
    }else{ //convert to 12 hour:
        pm = time[0]>=12
        if(!time[0]) time[0]=12 //handle midnight
        else if(pm && time[0]!=12) time[0] -= 12
    }
    return onoff ? time.join(':') : time.join(':')+(pm ? 'pm' : 'am')
}

Вот некоторые примеры:

//convert to 24 hour:
toggle24hr('12:00am')   //returns 00:00
toggle24hr('2:00pm')    //returns 14:00
toggle24hr('8:00am')    //returns 08:00
toggle24hr('12:00pm')   //returns 12:00

//convert to 12 hour:
toggle24hr('14:00')    //returns 2:00pm
toggle24hr('08:00')    //returns 8:00am
toggle24hr('12:00')    //returns 12:00pm
toggle24hr('00:00')    //returns 12:00am

//you can also force a specific format like this:
toggle24hr('14:00',1)    //returns 14:00
toggle24hr('14:00',0)    //returns 2:00pm
1
ответ дан 1 November 2019 в 15:14

Другие вопросы по тегам:

Похожие вопросы: