如何将下午2点或凌晨3点的时间转换为PHP中的HH:MM:SS格式?
答案 0 :(得分:17)
像这样:
$date = '2pm';
echo date('H:i:s', strtotime($date));
<强>结果:强>
14:00:00
和
$date = '2am';
echo date('H:i:s', strtotime($date));
<强>结果:强>
02:00:00
更多信息:
<强>更新强>
将其转换回来:
$date = '14:00:00';
echo date('HA', strtotime($date));
<强>结果:强>
14PM
答案 1 :(得分:1)
(这应该是一个评论,但它太长了)
Sarfraz的解决方案不完整的原因是因为它没有考虑到DST的转换。在DST过渡期间,可能不存在几个小时。
考虑时区是欧洲/里斯本,我们是在2010年3月28日DST开始时。
当我们凌晨1点,我们从UTC + 0更改为UTC + 1,即我们跳过1小时。例如:
date_default_timezone_set("Europe/Lisbon");
$date = '2010-03-28 1am';
$date2 = '2010-03-28 1:30am';
echo date('H:i:s', strtotime($date)),"\n";
echo date('H:i:s', strtotime($date2)),"\n";
给出
02:00:00 02:30:00
因此,除非您说要将1am
转换为01:00
,否则Sarfraz解决方案将失败,这些时间总是指服务器时区中的当前日期。< / p>