【发布时间】:2017-11-08 18:44:20
【问题描述】:
我想用时区偏移将日期形式从 d/m/Y 转换为 Y-m-d。我可以使用以下代码从 d/m/Y 转换为 Y-m-d:
$date = DateTime::createFromFormat('d/m/Y', $date);
$date = $date->format('Y-m-d');
这在某种程度上有效,但是当我遇到这样的日期时:
echo DateTime::createFromFormat('d/m/Y h:m:s', '19/07/2017 00:00:00');
results is 2016-12-19 00:00:00.000000
echo DateTime::createFromFormat('d/m/Y h:m:s', '20/07/2017 22:51:17');
results is false
已编辑 现在使用建议的格式
DateTime::createFromFormat('d/m/Y H:i:s', '19/07/2017 00:00:00');
预期结果:
06/06/2017 00:00:00 => 2017-06-06 00:00:00.000000
06/06/2017 12:31:34 => 2017-06-06 12:31:34.000000
08/06/2017 21:59:21 => 2017-08-06 21:59:21.000000
19/07/2017 00:00:00 => 2018-07-07 00:00:00.000000 wrong!
20/07/2017 22:51:17 => 2018-08-07 22:51:17.000000 wrong!
21/07/2017 23:39:23 => 2018-09-07 23:39:23.000000 wrong!
27/07/2017 02:46:14 => 2019-03-07 02:46:14.000000 wrong!
【问题讨论】:
-
应该是
d/m/Y H:i:s使用H为24hour格式。 -
干杯现在到了某个地方,但它仍然给出错误的结果,例如 30/07/2017 00:00:00 变成 2016-12-07 00:00:00.000000
-
@Photonic:您在几分钟内使用
m而不是i。 Sahil 编辑了他的评论,也许你没看到。
标签: php date date-format