2014-11-05 72 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