2014-11-02 3 views
0

Я использую PHP и MySQL. Как преобразовать время с форматом HH: MM AM/PM в HH: MM: SS, чтобы сэкономить время на MySQL?Преобразование времени в формате HH: MM AM/PM в HH: MM: SS

+0

Какова ваша первоначальная временная переменная? –

+0

Пример для вас: '$ time = '10: 12 AM '; echo $ time; echo date ('H: i: s', strtotime ($ time)); ' – MH2K9

+0

мой ввод - это текст, но с форматом HH: MM AM/PM –

ответ

2

Используйте strtotime, чтобы преобразовать его в метку времени, а затем отформатировать, используя функцию date.

Пример ниже предполагает, что $time был установлен на время, которое необходимо отформатировать.

$time = date("H:i:s", strtotime($time)); 
1

Путь я хотел бы сделать это:

<?php 
    $date = "6:23 AM"; 
    $timeType = explode(" ", $date); 
    $timeItems = explode(":", $timeType[0]); 
    if($timeType[1] == "PM"){ 
     $timeItems[0] += 12; 
    } 
    $time = implode(":", $timeItems); 
    $time .= ":00"; 
    var_dump($time); 
?> 
+0

Это будет работать, но вы изобретаете колесо. Есть уже функции, испеченные в PHP для обработки дат. –

+0

Да, это мое плохое, я не понял, что вы можете просто воспользоваться временем, используя функцию даты. Обучение от ответа – JammyDodger231

0

Используйте date_format(), чтобы решить вашу проблему:

DATE_FORMAT(date,'%H:%i:%s') 
+0

MySQL date_format и time_format не распознают строки am/pm. –

0

Easy. В MySQL использовать DATE_FORMAT как это:

SELECT DATE_FORMAT(NOW(), '%H:%i:%s'); 

И используя ваш пример вы могли пара это с STR_TO_DATE так:

SELECT DATE_FORMAT(STR_TO_DATE('09:41 AM', '%h:%i %p'), '%H:%i:%s'); 

Затем в MySQL запросов можно заменить 09:41 AM с переменной на основе вашего Таблица MySQL.