【问题标题】:PHP datetime createFromFormat fails. why? [duplicate]PHP datetime createFromFormat 失败。为什么? [复制]
【发布时间】:2015-06-23 17:48:10
【问题描述】:

好的,这就是我正在做的事情:

$dateString = "2015-06-12 06:01 am";
$dtUtc = new \DateTimeZone("UTC");
$dt = \DateTime::createFromFormat('yyyy-mm-dd h:i a', $dateString, $dtUtc);

if ($dt === false) {
    die('failed');
}

^ 它总是失败。为什么?我做错了什么?

【问题讨论】:

  • 也许是因为您不必发送 4 次 y 或 2x m 仅 1x 的垃圾邮件?!

标签: php datetime


【解决方案1】:

documentation来看,你想要:

DateTime::createFromFormat('Y-m-d g:i a', $dateString, $dtUtc)

请注意,Y 是“4 位数年份”,m 是“零填充月份”,d 是“零填充日”,g 是“零填充小时”。诚然,看到一个零填充的小时一个 AM/PM 指示符是很奇怪的。如果您还想处理“6:01 am”,则需要返回h 而不是i

【讨论】:

  • 一只野生的 Jon Skeet 在他的自然栖息地之外,回答了一个 PHP 问题 :)(对单一格式字符的很好的解释)
  • @Rizier123 他正在努力获得他的金 PHP 徽章:P
  • 啊谢谢。我应该检查格式文档。
  • @Machavity:有点令人震惊的是,尽管我没有做过任何 PHP,但我已经有了一个银色的 PHP 徽章。嗯。
猜你喜欢
  • 1970-01-01
  • 2017-11-01
  • 2013-06-09
  • 2014-11-20
  • 2012-04-24
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
相关资源
最近更新 更多