Я хочу отображать поле 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")
Используйте ФОРМАТ ДАТЫ()
ДАТА_ФОРМАТ (<заполнено>, '% h:% i:% s% p')
или же
ДАТА_ФОРМАТ (<заполнено>, '% r')
Вы также можете выбрать столбец как временную метку 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 и выполняете специальные запросы, то DATE_FORMAT() - это то, что вам нужно. Но если вы хотите, чтобы данные отображались в Интернете, я бы выбрал UNIX_TIMESTAMP() и сделал форматирование на PHP ...
Я имею в виду ... допустим, вы хотите изменить способ отображения даты и времени на странице ... разве не кажется, что вам нужно изменить свой SQL для настройки отображения?
мои 2 цента
У меня есть класс, содержащий весь мой код обработки даты. В коде входа я просто вызываю функцию из этого класса, которая форматирует время с помощью DATE_FORMAT (). Поэтому на самом деле это не отображается в коде дисплея и не кажется отключенным. Даты Mysql просто более читабельны, чем временные метки unix.
+1 за то, что "формат даты - это решение для отображения", действительно так, я согласен с вами на 200% по этому поводу
Я пытался сделать то же самое, и эта страница вернулась из поиска Google. Я проработал решение на время 21:00:00;
с использованием DATE_FORMAT(<field>,'%l.%i%p'), который вернул 9.00 вечера
поместив вокруг него функцию LOWER(), чтобы вернуть 21:00
Итак, полный код: DATE_FORMAT(<field>,'%l.%i%p')
Сработало у меня ...
Покажите дату и время в формате 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`
Оба работают нормально.
он будет отображаться в формате AM / PM. но что, если бы я хотел ввести тип формата AM / PM в формат времени mysql?