[php] PHP를 사용하여 MySQL 날짜 시간에서 다른 형식으로 변환

나는이 datetimeMySQL의에서 열을.

PHP를 사용하여 디스플레이를 mm / dd / yy H : M (AM / PM)으로 어떻게 변환 할 수 있습니까?



답변

날짜를 MySQL 형식으로 정규화하는 방법을 찾고 있다면 다음을 사용하십시오.

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

$phpdate = strtotime( $mysqldate )은 문자열을 받아들이고 일련의 휴리스틱을 수행하여 해당 문자열을 유닉스 타임 스탬프로 바꿉니다.

이 라인 $mysqldate = date( 'Y-m-d H:i:s', $phpdate )은 해당 타임 스탬프와 PHP date기능을 사용하여 해당 타임 스탬프를 MySQL의 표준 날짜 형식으로 되돌립니다.

( 편집자 주 :이 답변은 혼동되는 문구가 포함 된 원래 질문과 현재 존재하는 질문에 직접 답변하지 않더라도이 답변이 제공 한 일반적인 Google 유용성으로 인해 여기에 제공됩니다)


답변

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 날짜 형식 옵션 을 참조하십시오 .


답변

PHP 5를 사용하는 경우 시도해 볼 수도 있습니다

$oDate = new DateTime($row->createdate);
$sDate = $oDate->format("Y-m-d H:i:s");


답변

$valid_date = date( 'm/d/y g:i A', strtotime($date));

참조 : http://php.net/manual/en/function.date.php


답변

마지막으로 PHP 5.3 이상에 적합한 솔루션 :
(댓글에 언급 된대로 선택적 시간대를 예제에 추가)

$date = \DateTime::createFromFormat('Y-m-d H:i:s', $mysql_source_date, new \DateTimeZone('UTC'));
$date->setTimezone(new \DateTimeZone('Europe/Berlin')); // optional
echo $date->format('m/d/y h:i a');


답변

더 쉬운 방법은 PHP 대신 MySQL 쿼리에서 직접 날짜 형식을 지정하는 것입니다. DATE_FORMAT에 대한 MySQL 수동 항목을 참조하십시오 .

PHP로 작성하려면 날짜 함수 가 필요 하지만 먼저 데이터베이스 값을 타임 스탬프로 변환해야합니다.


답변

모두 잊어 버려 그냥 사용하십시오 :

$date = date("Y-m-d H:i:s",strtotime(str_replace('/','-',$date)))