php创建IntlDateFormatter返回的timestamped的DateTime

时间:2014-11-05 20:04:46

标签: php datetime format intl

我试图找到一种方便的方法将本地化日期输入转换为标准的dateTime对象。 有英文输入,这很容易,但不幸的是DateTime不支持国际化,所以我想我必须使用IntlDateFormatter。

所以我一直试图在两者之间传递结果并得到奇怪的结果:

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

返回

1324767600

当我将其传递给DateTime时

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

我得到了

25 December 2011

那么我在这里做错了什么,或者是否有更简单的方法来实现我想要实现的目标?

感谢

1 个答案:

答案 0 :(得分:0)

我认为这是因为你的模式与你想做的事情不一致。

根据ICU documentationMMM预计会有三个字母的月份。要选择更大的代表,请使用MMMM