我正在尝试在PHP中准备一个MySQL查询。我的问题是PHP与MySQL对待日期的方式不同。
在MySQL中,“ 2000”是2000年,在PHP中是8 PM。
$date1 = new DateTime('2000-01-01');
echo $date1->format("Y-m-d H:i:s"); // 2000-01-01 00:00:00
$date2 = new DateTime('2000-01');
echo $date2->format("Y-m-d H:i:s"); // 2000-01-01 00:00:00
// This gets 8 PM instead of the year 2000
$date3 = new DateTime('2000');
echo $date3->format("Y-m-d H:i:s"); // 2014-07-14 20:00:00
$date4 = DateTime::createFromFormat("Y-m-d H:i:s", '2000');
echo $date4->format("Y-m-d H:i:s"); // PHP Fatal error: Call to a member function format() on a non-object
我只希望在日期之后包含时间的情况下进行解析。
有没有办法告诉它在PHP中优先考虑一年中的解析时间?
DateTime
如果只经过一年,就不能期望以特定的格式解析日期。
但是,您可以通过将感叹号作为格式的一部分来清除所有其他日期字段:
$date = DateTime::createFromFormat('!Y', '2000');
echo $date->format('r'); // Sat, 01 Jan 2000 00:00:00: +0000
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句