Can';t在PHP中正确解析0:30am/PM

Can';t在PHP中正确解析0:30am/PM,php,datetime,Php,Datetime,因此,我尝试使用下面编写的代码在PHP中将字符串转换为日期时间 当我运行此代码时,结果是1:00,而不是应该的0:30。但是,当我尝试转换1:30时,效果很好。这是PHP中的一个bug吗 $start = date("H:i", strtotime("0:30 AM")); var_dump($start); return 0; 不,没有虫子。在12小时制时钟中,午夜和中午用12表示,而不是0。因此,如果你有一个上午或下午的指标,时间应该是“12:30上午”或“12:30下午” 在24小时制

因此,我尝试使用下面编写的代码在PHP中将字符串转换为日期时间

当我运行此代码时,结果是
1:00
,而不是应该的
0:30
。但是,当我尝试转换
1:30
时,效果很好。这是PHP中的一个bug吗

$start = date("H:i", strtotime("0:30 AM")); 
var_dump($start);
return 0;

不,没有虫子。在12小时制时钟中,午夜和中午用12表示,而不是0。因此,如果你有一个上午或下午的指标,时间应该是“12:30上午”或“12:30下午”

在24小时制中,没有AM或PM指示器,因此“0:30”或“12:30”将是等效的


如果日期无效,
strotime
可能会返回false(或者-1,在早期版本的PHP中),从那以后情况就越来越糟了。

不,没有bug。在12小时制时钟中,午夜和中午用12表示,而不是0。因此,如果你有一个上午或下午的指标,时间应该是“12:30上午”或“12:30下午”

在24小时制中,没有AM或PM指示器,因此“0:30”或“12:30”将是等效的

对于无效日期,
strotime
可能返回false(或-1,在早期版本的PHP中),从那以后事情就开始走下坡路了。

strotime('0:30am')
实际上产生了
false
;要么放弃AM,要么使用12:30。
strotime('0:30am')
实际产生
false
;要么放下调幅,要么使用12:30。