如何用PHP将“HH:MM:SS”字符串转换为秒?

时间:2011-01-05 14:24:53

标签: php time date-conversion

是否存在使用PHP 5.3执行"HH:MM:SS" to seconds的本地方式,而不是对冒号进行拆分并将每个部分乘以相关数字来计算秒数?


例如在Python中你可以这样做:

string time = "00:01:05";
double seconds = TimeSpan.Parse(time).TotalSeconds;

4 个答案:

答案 0 :(得分:24)

快捷方式:

echo strtotime('01:00:00') - strtotime('TODAY'); // 3600

答案 1 :(得分:7)

这应该可以解决问题:

list($hours,$mins,$secs) = explode(':',$time);
$seconds = mktime($hours,$mins,$secs) - mktime(0,0,0);

答案 2 :(得分:4)

我认为最简单的方法将使用strtotime()函数:

$time = '21:30:10';
$seconds = strtotime("1970-01-01 $time UTC");
echo $seconds;

demo


函数date_parse()也可用于解析日期和时间:

$time = '21:30:10';
$parsed = date_parse($time);
$seconds = $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second'];

demo

答案 3 :(得分:2)

不幸的是没有 - 因为PHP没有强类型,所以没有时间类型的概念,因此没有办法在这样的字符串和“秒”值之间进行转换。

因此,在实践中,人们经常拆分字符串并按照您的提及将每个部分相乘。