Конвертировать из даты и времени MySQL в другой формат с помощью PHP - PullRequest
420 голосов
/ 26 сентября 2008

У меня есть столбец datetime в MySQL.

Как я могу преобразовать его в дисплей как мм / дд / гг Ч: М (AM / PM) с использованием PHP?

Ответы [ 17 ]

490 голосов
/ 20 марта 2011

Если вы ищете способ нормализовать дату в формате MySQL, используйте следующее

$phpdate = strtotime( $mysqldate );
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );

Строка $phpdate = strtotime( $mysqldate ) принимает строку и выполняет серию эвристик, чтобы превратить эту строку в метку времени Unix.

Строка $mysqldate = date( 'Y-m-d H:i:s', $phpdate ) использует эту метку времени и PHP-функцию date, чтобы вернуть эту метку обратно в стандартный формат даты MySQL.

( Примечание редактора : этот ответ здесь из-за оригинального вопроса с запутанной формулировкой и общей полезности Google, которую этот ответ предоставил, даже если он не 'прямо ответил на вопрос, который существует сейчас) *

293 голосов
/ 26 сентября 2008

Чтобы преобразовать дату, полученную из MySQL, в запрошенный формат (mm/dd/yy H:M (AM/PM)):

// $datetime is something like: 2014-01-31 13:05:59
$time = strtotime($datetimeFromMysql);
$myFormatForView = date("m/d/y g:i A", $time);
// $myFormatForView is something like: 01/31/14 1:05 PM

См. Параметры форматирования даты PHP для настройки формата.

105 голосов
/ 26 сентября 2008

Если вы используете PHP 5, вы также можете попробовать

$oDate = new DateTime($row->createdate);
$sDate = $oDate->format("Y-m-d H:i:s");
41 голосов
/ 01 марта 2013
$valid_date = date( 'm/d/y g:i A', strtotime($date));

Ссылка: http://php.net/manual/en/function.date.php

21 голосов
/ 31 декабря 2014

Наконец, правильное решение для PHP 5.3 и выше:

$date = \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date);
echo $date->format('m/d/y h:i a');
12 голосов
/ 26 сентября 2008

Более простым способом было бы отформатировать дату непосредственно в запросе MySQL вместо PHP. См. MySQL ручную запись для DATE_FORMAT .

Если вы предпочитаете делать это в PHP, тогда вам нужна функция date , но сначала вам нужно будет преобразовать значение вашей базы данных в метку времени.

10 голосов
/ 14 сентября 2012

Забудь все. Просто используйте:

$date = date("Y-m-d H:i:s",strtotime(str_replace('/','-',$date)))
9 голосов
/ 31 мая 2013

Чтобы правильно отформатировать DateTime объект в PHP для хранения в MySQL, используйте стандартизированный формат, который использует MySQL, а именно ISO 8601 .

В PHP этот формат сохранялся как константа начиная с версии 5.1.1, и я настоятельно рекомендую использовать его, а не каждый раз вводить строку вручную.

$dtNow = new DateTime();
$mysqlDateTime = $dtNow->format(DateTime::ISO8601);

Это и список других констант PHP DateTime доступны по адресу http://php.net/manual/en/class.datetime.php#datetime.constants.types

8 голосов
/ 09 ноября 2011

Это должно отформатировать поле в запросе SQL:

SELECT DATE_FORMAT( `fieldname` , '%d-%m-%Y' ) FROM tablename
7 голосов
/ 26 сентября 2008

Используйте функцию date :

<?php
    echo date("m/d/y g:i (A)", $DB_Date_Field);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...