2011-12-24 3 views
0

코드 :날짜 형식을 변경 - 잘못된 년

$expiration_date = "24th Dec, 2012"; 
var_dump(date('Y-m-d', strtotime($expiration_date)));; 

출력 :

string(10) "2011-12-24" 

왜 PHP가 제대로 연도를 구문 분석되지는 (대신 2012 년 2011 보여주는)?

PHP 버전 : 5.2.17

+1

strtotime은 편리하지만 전수적이 아닙니다. 인공적으로 지능적으로 가까이 있지도 않습니다. 기껏해야 그것은 인위적으로 어리 석다. –

답변

4

strtotime()은 날짜 순서를 지원하지 않습니다 (2 ndtable 참조). 대신 DateTime 클래스를 사용하십시오.

$date = DateTime::createFromFormat("jS M, Y", "24th Dec, 2012"); 
var_dump($date->format('Y-m-d')); // string(10) "2012-12-24" 
1

를 CentOS 5.7에 아마도 그것은 $의 만료의 형식 함께 할 수있는 뭔가가. 날짜의 infront 월을 넣어보십시오. 그것은 나를 위해 잘 작동했습니다.

$expiration_date = "Dec 24th, 2012";