为什么在strtotime()转换后小时显示错误

时间:2014-06-08 06:28:38

标签: php

我使用this网址进行分钟转换时间,但是没有时间显示额外小时。

我的代码是

<?php

$seconds=strtotime('00:11:10').'<br/>';
echo gmdate('H:i:s',$seconds).'<br/>';
$H = floor(($seconds / 3600));
$i = ($seconds / 60) % 60;


$s = $seconds % 60;
echo sprintf("%02d:%02d:%02d", $H, $i, $s);

?>

输出显示389496:11:10 //应该是00:11:10 问题是什么......? 我真的很痛苦,任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分:0)

这是the snippet我用于HH:MM:SS分钟转换。

<?php

$str_time = "00:11:10";

$str_time = preg_replace("/^([\d]{1,2})\:([\d]{2})$/", "00:$1:$2", $str_time);

sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds);

$time_seconds = $hours * 3600 + $minutes * 60 + $seconds;

$minutes = $time_seconds / 60;

echo $minutes;

正如您所料,输出为11.166666666667

如果时间为1 hour, 20 minutes and 10 seconds,则输出为:80.166666666667

答案 1 :(得分:-1)

我冒昧地说,因为你将<br>追加到$秒,然后将其用于数学函数,如$ seconds / 3600 ......等。删除<br>并添加它稍后,或完全删除<br>

$seconds=strtotime('00:11:10');
echo gmdate('H:i:s',$seconds).'<br/>';
$H = floor(($seconds / 3600));
$i = ($seconds / 60) % 60;
$s = $seconds % 60;
echo sprintf("%02d:%02d:%02d", $H, $i, $s);