Я хочу отобразить поле TIME из моей таблицы mysql на своем веб-сайте, но не показывать 21:00:00 и т. Д. Я хочу показать 8:00 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')
Работал нормально для меня …