【发布时间】:2013-02-08 03:04:53
【问题描述】:
php strtotime() 失败,为分钟或秒的一位数。
例如-
echo date('m/d/Y H:i:s', strtotime('02/23/2013 8:50:1 PM')); // 01/01/1970 01:00:00
echo date('m/d/Y H:i:s', strtotime('02/23/2013 8:5 PM')); // 01/01/1970 01:00:00
对此有快速解决方案吗?
我知道,我们可以拆分它并检查分钟或秒字符串长度,并添加一个 0 前缀。
顺便说一句,奇怪的是,如果最后部分是一位数,则失败
例如-
echo date('m/d/Y H:i:s', strtotime('02/23/2013 8:5:10 PM')); // 02/23/2013 20:05:10
// worked well, despite of one digit minute
【问题讨论】:
-
我总是建议
DateTime::createFromFormat()而不是strtotime()。但是在这种情况下,即使那样也无济于事,因为它还坚持在分钟和秒内使用前导零。没有它们似乎有点奇怪。无论如何,您从哪里得到那些损坏的日期/时间字符串?您不能只强制执行更高质量的输入数据吗?
标签: php datetime unix-timestamp strtotime