MySQL DateTime에서 PHP를 사용하여 다른 형식으로 변환하십시오

StackOverflow https://stackoverflow.com/questions/136782

  •  02-07-2019
  •  | 
  •  

문제

나는있다 datetime MySQL의 열.

디스플레이로 어떻게 변환 할 수 있습니까? MM/DD/YY H : M (AM/PM) PHP 사용?

도움이 되었습니까?

해결책 2

MySQL에서 검색된 날짜를 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 날짜 서식 옵션 형식을 조정합니다.

다른 팁

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 유용성은 현재 존재하는 질문에 직접 대답하지 않더라도이 답변을 제공합니다.

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);
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)))

올바르게 형식 a DateTime MySQL에 저장하기위한 PHP의 개체 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

이것은 SQL 쿼리의 필드를 형성해야합니다.

SELECT DATE_FORMAT( `fieldname` , '%d-%m-%Y' ) FROM tablename

사용 데이트 기능:

<?php
    echo date("m/d/y g:i (A)", $DB_Date_Field);
?>

MySQL DateTime 구성에 따라 일반적으로: 2011-12-31 07:55:13 체재. 이 매우 간단한 기능은 마법을 수행해야합니다.

function datetime()
{
    return date( 'Y-m-d H:i:s', time());
}

echo datetime(); // display example: 2011-12-31 07:55:13

또는 질문과 일치하기 위해 조금 더 발전합니다.

function datetime($date_string = false)
{
    if (!$date_string)
    {
        $date_string = time();
    }
    return date("Y-m-d H:i:s", strtotime($date_string));
}
SELECT 
 DATE_FORMAT(demo.dateFrom, '%e.%M.%Y') as dateFrom,
 DATE_FORMAT(demo.dateUntil, '%e.%M.%Y') as dateUntil
FROM demo

PHP 코드의 모든 기능을 변경하지 않으려면 예상 날짜 형식을 표시하려면 소스 - 데이터베이스에서 변경하십시오.

행을 이름으로 지정하는 것이 중요합니다 ~처럼 위의 예에서와 같이 연산자 (날짜는 날짜로). 당신이 쓴 이름은 이름이 있고, 결과에서 행이 호출됩니다.

이 예제의 출력은 다음과 같습니다

월의 날, 숫자 (0..31)]. [월 이름 (1 월 .. December)].

예 : 5. August.2015

선택한 분리기로 점을 변경하고 date_format (날짜, 형식) 더 많은 날짜 형식에 대한 기능.

쿼리가 시간을 UNIX 타임 스탬프로 반환 할 수도 있습니다. 그것은 전화 할 필요성을 제거 할 것입니다 strtotime() 그리고 PHP 측에서 물건을 조금 덜 집중적으로 만드십시오 ...

select  UNIX_TIMESTAMP(timsstamp) as unixtime from the_table where id = 1234;

그런 다음 PHP에서는 date() 원하는 방식으로 포맷하기 위해 기능합니다.

<?php
  echo date('l jS \of F Y h:i:s A', $row->unixtime);
?>

또는

<?php
  echo date('F j, Y, g:i a', $row->unixtime);
?>

나는 사용하는 것과는 달리이 접근법이 마음에 듭니다 MySQL'에스 DATE_FORMAT 함수는 동일한 쿼리를 재사용하여 데이터를 가져오고 PHP의 형식을 변경할 수 있기 때문에 기능합니다.

날짜가 UI에서 보이는 방식을 변경하는 것만으로 두 개의 다른 쿼리를 갖는 것이 성가신 일입니다.

UNIX 타임 스탬프로 돌아 오지 않은 날짜에 문제가있을 수 있으므로 이것은 나에게 효과적입니다 ...

return date("F j, Y g:i a", strtotime(substr($datestring, 0, 15)))

이것은 작동 할 것입니다 ...

echo date('m/d/y H:i (A)',strtotime($data_from_mysql));

PHP 버전 4.4.9 & MySQL 5.0을 사용하여 나에게 효과가있었습니다.

$oDate = strtotime($row['PubDate']);
$sDate = date("m/d/y",$oDate);
echo $sDate

PubDate 열입니다 MySQL.

$date = "'".date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $_POST['date'])))."'";
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top