PHP date函数时间显示异常:分钟值错误问题咨询
问题原因与解决方案
哦,这个问题我一眼就看出来啦——你在date()函数里用错了格式化字符!
核心问题:格式化字符串的字符混淆
你写的格式化串是'm/d/Y h:m:s',这里的第二个m不是代表分钟,而是代表月份!因为你的$bookingDate是06/01/2018,对应的月份是06,所以date()函数把这个月份值替换到了m的位置,才会出现分钟显示成06的异常。
在PHP的date()函数里,常用的时间格式化字符对应含义是:
m= 两位数字的月份(01-12)i= 两位数字的分钟(00-59)h= 12小时制的小时(01-12)H= 24小时制的小时(00-23)s= 两位数字的秒数(00-59)
修正后的代码
把格式化串里的第二个m改成i就可以解决问题了:
echo date('m/d/Y h:i:s',$assignedOn); echo '<br/>'; echo date('m/d/Y h:i:s',$assignedEnd); echo '<hr/>';
验证结果
修正后,输出就会完全符合你的预期:
06/01/2018 02:01:00 06/01/2018 04:02:00
另外补充个小建议:如果你的业务时间是24小时制的,建议把h换成H,这样显示的小时会更贴合实际场景哦。
内容的提问来源于stack exchange,提问作者user8625234
相关产品推荐
相关产品推荐

