2014-11-02 4 views
1

포맷의 다른 날짜를 얻기 : 내가 그들을 인쇄 할 때내가 다음 코드를 사용하여 PHP에서 날짜를 포맷하고

$date = "2014-11-01"; 
$date_formatted = gmdate("Y-m-d", strtotime($date)); 

는 포맷 된 날짜는 하루에 돌아 간다. 나는 꽤 놀랐다. 나는 단순히 해결책을 찾고있는 것이 아니다 (이것과 같은 간단한 것들을위한 많은 것들이있다). 나는 그것이 어떻게 일어 났는지 알고 싶다. 당신이 gmdate을 사용하기 때문에

echo $date . " ---> " . $date_formatted;  
//Displays: 2014-11-01 ---> 2014-10-31 
+0

나에게 잘 보입니다. http://codepad.org/rTXAEHLT –

+1

다음을 참조하십시오. http://codepad.org/L7YzM3jN – Evert

답변

6

이 있습니다. 이렇게하면 제공된 타임 스탬프에 따라 GMT로 날짜가 표시됩니다.

strtotime 아니요,은 기본적으로 GMT를 사용하고 대신 현지 시간대를 사용합니다. 따라서 gmdate으로 전화하면 시간대 오프셋으로 날짜와 시간이 단축됩니다.

이 문제를 해결하려면 gmdate 대신 date을 사용하거나 시스템의 시간대를 UTC로 설정하십시오.

관련 문제