PHP 日期格式不起作用


php date formatting not working

$t = DateTime::createFromFormat('Gi', '900');
$time_str = $t->format('gi a');
echo $time_str; //outputs 600 pm instead of 9am. Why? and How do I get 9am?

不确定我哪里出错了。我遵循此处给出的日期格式:http://php.net/manual/en/function.date.php

谢谢!

您链接的文档适用于date()函数。DateTime::createFromFormat不一样(尽管格式字符串几乎相同(。

我希望格式解析无法识别小时和分钟组件之间的差异。

如果将它们与空格分开,则会得到所需的结果:

$t = DateTime::createFromFormat('G i', '9 00');
$time_str = $t->format('gi a');
echo $time_str;
// Output is 900 am

编辑:

PHP 无法解析像Gi这样的格式字符串是一个已知的错误。G的解析器不知道是读取9还是90,在后一种情况下,90太高。

正如我在评论中所说,这有效:

$t = DateTime::createFromFormat('G i', '9 00');
$time_str = $t->format('gi a');
echo $time_str.PHP_EOL;

找不到任何写下来的地方 - 但怀疑时间需要分开......通过空格或冒号或其他东西