如何将时间从下午2点或凌晨3点转换为PHP中的HH:MM:SS格式?

时间:2010-08-03 20:00:55

标签: php

如何将下午2点或凌晨3点的时间转换为PHP中的HH:MM:SS格式?

2 个答案:

答案 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>