#php #mysql #timestamp
#php #mysql #временная метка
Вопрос:
Сегодня я работаю с PHP и MySQL, и я сохраняю даты в поле метки времени в MySQL, но по умолчанию в формате 24 / h, если кто-нибудь знает, как я могу определить этот час для примера AM или PM:
14:05 -> 2:05PM
02:05 -> 2:05AM
Большое спасибо за ваше время.
Комментарии:
1. Для меня не совсем понятно, чего вы хотите. Вы добавляете временную метку в mysql и хотите позже получить вывод этой временной метки в формате 12 / h?
Ответ №1:
Вы можете использовать DATE_FORMAT()
SELECT DATE_FORMAT(hour_column, '%r');
Ответ №2:
Нет, нет, нет. Значение «timestamp» может означать «11:00 утра» (если вы в Нью-Йорке), но ТО ЖЕ значение также будет означать «4:00 вечера» (если вы в Гринвиче, Англия).
ЗНАЧЕНИЕ метки времени не зависит от ЧАСОВОГО ПОЯСА, в котором вы находитесь.
Сказав это, вы хотите преобразовать СТРОКУ даты и времени (в формате 24 / h) в ДРУГУЮ строку даты и времени (преобразовать в формат 12 / meridian).
Легко сделать из MySQL или PHP: в зависимости от того, что вы предпочитаете.
Вот функции формата даты / времени PHP и соответствующие строки формата:
http://php.net/manual/en/function.strtotime.php
http://www.php.net/manual/en/datetime.formats.time.php
И вот справочные страницы MySQL:
Ответ №3:
DateTime будет вашим другом.
Во-первых, если ваша конфигурация php еще не настроена для вас, установите часовой пояс по умолчанию с помощью:
date_default_timezone_set('XXXX');
XXXX обозначает значение из списка поддерживаемых часовых поясов
инициализируйте свою дату с помощью:
$date = new DateTime();
Чтобы получить вашу временную метку, вы можете использовать now:
$timestamp = $date->getTimestamp();
Как уже говорилось ранее, вывод (формат) зависит от вашего часового пояса. Вы установили часовой пояс по умолчанию ранее, но вы можете менять его все время, по мере необходимости.
Для форматирования даты вы можете использовать это:
$12h = $date->format( 'h:i:s a' );
$24h = $date->format( 'H:i:s a' );
Чтобы узнать больше о DateTime, ознакомьтесь с руководством по классу DateTime .