我尝试将23小时格式转换为格式m-d-y h:i
,即2014年3月1日1 am
03-01-2014 01:00 am
date_format('03-01-2014 01:00 am','Y-m-d h:i:s')
date('Y-m-d h:i:s',strtotime('03-01-2014 01:00 am')
转换为等效的24小时格式Y-m-d H:i:s
,但我得到错误的结果
2014-01-03 01:00:00
它应该给出
2014-03-01 01:00:00
03-01-2014 01:00 am
有歧义。是3月1日吗?还是4月3日?从手册:
m/d/y或d-m-y格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜杠(/),则假定为美式m/d/y;而如果分隔符是破折号(-)或点(.),则假定采用欧洲d-m-y格式。
为了避免潜在的歧义,最好尽可能使用ISO 8601 (YYYY-MM-DD)日期或DateTime::createFromFormat()。
$date = DateTime::createFromFormat('m-d-Y h:i a', '03-01-2014 01:00 am');
echo $date->format('Y-m-d H:i:s');
2005-01-30 11:03 pm使用
date('Y-m-d h:i a');
对于2005-01-30 23:03使用
date('Y-m-d H:i');