Преобразование mysql TIME из 24 HR в формат AM / PM

Я хочу отобразить поле TIME из моей таблицы mysql на своем веб-сайте, но не показывать 21:00:00 и т. Д. Я хочу показать 8:00 PM. Мне нужна функция / код для этого или даже указатели в правильном направлении. Отметьте первый ответ некоторым кодом как правильный ответ.

Solutions Collecting From Web of "Преобразование mysql TIME из 24 HR в формат AM / PM"

Проверьте это: http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

Я бы предположил, что вам нужна date_format ().

Пример: DATE_FORMAT ($ date, "% r")

Покажите данные даты и времени в формате AM / PM в следующем примере …

SELECT DATE_FORMAT(`t`.`date_field`,'%h:%i %p') AS `date_field` FROM `table_name` AS `t` 

ИЛИ

 SELECT DATE_FORMAT(`t`.`date_field`,'%r') AS `date_field` FROM `table_name` AS `t` 

Оба работают правильно.

Вы также можете выбрать столбец как UNIX_TIMESTAMP() метку unix с помощью функции MYSQL UNIX_TIMESTAMP() . Затем отформатируйте его в PHP. ИМО это более гибко …

 select a, b, c, UNIX_TIMESTAMP(instime) as unixtime; 

В PHP используйте функцию date() и форматируйте ее так, как вы хотите.

 <?php echo date('Y/m/d', $row->unixtime); ?> 

Причина, по которой мне нравится этот метод, в отличие от его форматирования в SQL, – это b / c, для меня формат даты – это решение для отображения и (на мой взгляд) форматирование даты в SQL кажется неправильным … зачем ставить логику отображения в вашем SQL?

Теперь – если вы не обрабатываете данные на PHP и делаете adhoc-запросы, тогда DATE_FORMAT() – это путь. Но если у вас UNIX_TIMESTAMP() данные в Интернете, я бы пошел с UNIX_TIMESTAMP() и сделал форматирование в PHP …

Я имею в виду … скажем, вы хотите изменить, как дата и время отображаются на странице … не будет ли он «выключен», чтобы изменить ваш SQL для настройки отображения?

мои 2 цента

Используйте DATE_FORMAT ()

DATE_FORMAT (<Fieled>, '% h:% i:% s% p')

или

DATE_FORMAT (<Fieled>, '% г')

Я пытался сделать то же самое и получил эту страницу из поиска Google. Я работал решение на время 21:00:00;

  • используя DATE_FORMAT(<field>,'%l.%i%p') которое вернулось 9.00PM

  • добавив функцию LOWER() вокруг нее, чтобы вернуться в 9:00 вечера

Таким образом, полный код; DATE_FORMAT(<field>,'%l.%i%p')

Работал нормально для меня …