php - 为什么 DateTime::createFromFormat('dmY H:i A', $date)->format('dmY') 将日期更改为下午 1 点之后的第二天?
问题描述
为什么 DateTime::createFromFormat('dmY H:i A', $date)->format('dmY') 将日期更改为下午 1 点之后的第二天?
** 请注意,我认为这可能与“H”或“h”的格式有关,我仍在尝试弄清楚..
$date = "04-12-2018 12:59 PM";
$date_input = "04-12-2018 13:00 PM";
echo $date . ' - date <br>';
echo $date_input . ' - date_input <br>';
var_dump($date);
echo '<br/>';
var_dump($date_input);
echo '<br/>';
echo DateTime::createFromFormat('d-m-Y H:i A', $date)->format('d-m-Y') . '<br/>';
echo DateTime::createFromFormat('d-m-Y H:i A', $date_input)->format('d-m-Y') . '<br/>';
结果:
04-12-2018 12:59 PM - date
04-12-2018 13:00 PM - date_input
string(19) "04-12-2018 12:59 PM"
string(19) "04-12-2018 13:00 PM"
04-12-2018
05-12-2018
解决方案
根据DateTime::__construct() 的 PHP 文档
不存在的值会翻转。
// Non-existent values roll over.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
输出
2000-03-01 00:00:00-05:00
所以这不是一个错误,它是一个特性。
推荐阅读
- javascript - React Redux 返回道具列表 [Metronic Theme]
- mysql - 在选择特定列从哪一个中提取时连接表
- python-3.x - 我如何制作正确的“nuke”命令 discord.py
- python - 根据字符串中间的任意数字对列表中的字符串进行排序
- javascript - 下拉点击事件总是触发第一个
- networking - 网络模拟器
- python - Python - 阅读线
- python - Sympy:打印一个符号而不是其对应的名称
- r - 在 r 中使用 tibbles,将默认设置为在小数点右侧打印 3 位数字
- python-3.x - 使用 Selenium 在 PowerBI 网站上导航页面时避免重复