【问题标题】:php create DateTime from timestamped returned by IntlDateFormatterphp 根据 IntlDateFormatter 返回的时间戳创建 DateTime
【发布时间】:2015-01-02 04:02:35
【问题描述】:

我正在尝试找到一种方便的方法将本地化日期输入转换为标准 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

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

谢谢

【问题讨论】:

  • 您应该始终知道输入是什么。
  • 那没有回答这个问题。我指定了一个输入定义非常明确的情况

标签: php datetime format intl


【解决方案1】:

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

根据ICU documentationMMM 预计三个月。要选择更大的表示,请使用MMMM

【讨论】:

    猜你喜欢
    • 2011-05-18
    • 2012-09-18
    • 2017-01-18
    • 2022-07-02
    • 2016-05-29
    • 2012-08-15
    • 1970-01-01
    • 2013-03-30
    • 2018-11-26
    相关资源
    最近更新 更多