2014-11-05 4 views
-1

지역화 된 날짜 입력을 표준 dateTime 객체로 변환하는 편리한 방법을 찾고 있습니다. 영어 입력이있어서 정말 쉽지만 불행히도 DateTime은 국제화를 지원하지 않으므로 IntlDateFormatter를 사용해야 할 것입니다. php IntestateDateFormatter에서 반환 한 timestamped에서 DateTime을 만듭니다.

그래서 내가 두 얻을 이상한 결과 사이에 결과를 전달하기 위해 노력했습니다 : 나는 통과

$formatter = new \IntlDateFormatter(
    'en_US', 
    \IntlDateFormatter::NONE, 
    \IntlDateFormatter::NONE 
); 
$formatter->setPattern("dd MMMM Y"); 
$timestamp = $formatter->parse("08 February 2012"); 

반환

1324767600 

날짜 시간

$dateTime = new \DateTime(); 
$dateTime->setTimestamp($timestamp); 
$formatted = $dateTime->format("d F Y"); 

그 나는

25 December 2011 

내가 여기서 잘못하고있는 것은 무엇인가, 아니면 내가 성취하고자하는 것을 훨씬 쉽게 할 수있는 방법이 있을까?

덕분에

+0

항상 입력 내용을 알아야합니다. 질문에 대답하지 않는 –

+0

. 입력이 매우 명확하게 정의 된 경우를 지정했습니다 – kKre

답변

0

나는 당신의 패턴이 당신이 원하는 것과 일관성이 아니기 때문에 그것은 생각합니다.

ICU documentation에 따르면 MMM은 3 자리 월을 예상합니다. 더 큰 표현을 선택하려면 MMMM을 사용하십시오.

+0

두 가지 모두 시도한 결과가 같습니다. – kKre