php日期格式化不起作用

时间:2012-02-10 16:25:00

标签: php

$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

谢谢!

2 个答案:

答案 0 :(得分:2)

您链接的文档适用于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之类的格式字符串是known bugG的解析器不知道是阅读9还是90,后一种情况是90太高。

答案 1 :(得分:2)

正如我在评论中说的那样:

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

无法找到任何写下来的地方 - 但怀疑时间需要分开......无论是空格还是冒号还是其他东西