【问题标题】:wrong convert date() PHP错误的转换日期() PHP
【发布时间】:2022-01-19 07:20:36
【问题描述】:

我使用 date() 使用此代码将 12H 时间转换为 24H

$over = date("Y-m-d H:i:s", strtotime("2021-12-16 13:42:46 PM"));
echo $over;

但输出如下:

1969-12-31 16:00:00

如何摆脱这个,这是一个错误吗?还是我的代码?

sandbox

【问题讨论】:

  • 您已添加下午时间:13:42:46。这是不允许的

标签: php date time


【解决方案1】:

只需指定正确的日期格式(不支持PM):

$over = date("Y-m-d H:i:s", strtotime("2021-12-16 13:42:46"));
echo $over;

你可以在https://www.php.net/manual/de/datetime.formats.php找到支持的日期格式

【讨论】:

  • 支持上午/下午,但如果您传递 24 小时时间格式,则无意义。
【解决方案2】:

13:42:46 PM 不是 12h 时间格式(PM 在 24h 格式中是无意义的),01:42:46 PM 是正确的。

【讨论】:

  • 是的,strtotime() 在下午 13:42:46 返回 bool(false)。
  • @jspit;根据OP,它在这里返回-28800。知道为什么吗?
  • strtotime 返回 false。由于其时区,日期不会返回 1970-01-01。尝试自我3v4l.org/DUXM7
  • 这太真实了!谢谢!
猜你喜欢
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
相关资源
最近更新 更多