Конвертирование mysql TIME из 24 часов в формат AM / PM - PullRequest
9 голосов
/ 06 октября 2008

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

Ответы [ 5 ]

12 голосов
/ 05 марта 2012

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

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

OR

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

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

12 голосов
/ 06 октября 2008

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

Я полагаю, вы захотите date_format ().

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

2 голосов
/ 06 октября 2008

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

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

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

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

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

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

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

мои 2 цента

1 голос
/ 10 июля 2009

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

  • с использованием DATE_FORMAT(<field>,'%l.%i%p'), который возвратил 9:00 вечера

  • добавление функции LOWER() для возврата в 9:00 вечера

Итак, полный код: DATE_FORMAT(<field>,'%l.%i%p')

У меня все в порядке ...

0 голосов
/ 06 октября 2008

Использование DATE_FORMAT ()

DATE_FORMAT (, '% h:% i:% s% p')

или

DATE_FORMAT (, '% г')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...