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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
15
0
58 950
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

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

Я полагаю, вам понадобится date_format ().

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

он будет отображаться в формате AM / PM. но что, если бы я хотел ввести тип формата AM / PM в формат времени mysql?

itskawsar 21.04.2013 14:23

Используйте ФОРМАТ ДАТЫ()

ДАТА_ФОРМАТ (<заполнено>, '% 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.

Ali 06.10.2008 08:13

+1 за то, что "формат даты - это решение для отображения", действительно так, я согласен с вами на 200% по этому поводу

Immutable Brick 02.05.2013 12:42

Я пытался сделать то же самое, и эта страница вернулась из поиска 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`

Оба работают нормально.

Другие вопросы по теме