2014-11-05 124 views
-1

我試圖找到一個方便的方式來將本地化的日期輸入轉換爲標準的dateTime對象。 有英文輸入,這很容易,但不幸的是DateTime不支持國際化,所以我想我將不得不使用IntlDateFormatter。php創建日期時間從時間戳返回IntlDateFormatter

所以我一直在試圖通過導致兩個並得到奇怪的結果之間:

$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

你應該總是知道輸入是什麼。 – 2014-11-05 20:21:20

+0

沒有回答這個問題。我已經指定了一個輸入非常明確的情況 – kKre 2014-11-05 20:30:41

回答

0

我認爲這是因爲你的模式與你想要做的不一致。

根據ICU documentationMMM需要一個三個字母的月份。要選擇更大的表示形式,請使用MMMM

+0

嘗試了兩個,結果相同 – kKre 2014-11-05 20:44:03