php将时间戳转换为秒(2小时12分钟或2:12:00)

时间:2016-05-22 18:21:28

标签: php seconds

您好我正在尝试将时间戳转换为秒。目前,时间戳将以两种形式传输,并希望为其中任何一种做好准备。但是我觉得我用我试过的方法让自己变得更难。

所以例如输入是

1小时1分1秒 2小时2分2秒< - 复数

我希望最终输出为下面的示例,以便我可以将该数字转换为几秒:

01:01:01 02:02:02

我不知道这是什么情况,它将是一个通过url传递的参数,这是我到目前为止所尝试的,但就像我说的那样,它没有正确显示:

$recent_time = htmlspecialchars($_GET["time"]);

$recent_time = preg_replace("/[^0-9,.]/", ":", $recent_time);
    $recent_time = preg_replace("/(.)\\1+/", "$1", $recent_time);

echo $recent_time;

所以你可以看到我用冒号替换所有字母,并确保冒号不重复,所以输出将是xx:xx:xx但是有时输出不准确这里是我如何翻译输出到秒:

$str_time = preg_replace("/^([\d]{1,2})\:([\d]{2})$/", "00:$1:$2", $recent_time);
        sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds);
        $time_seconds = $hours * 3600 + $minutes * 60 + $seconds;
        $sum_total = $time_seconds + $old_time;

问题在于,如果只有min + sec,它就不能正确地将其转换为秒。所以例如时间是10分13秒,它将输出10:13:,但它没有正确地将其转换为秒,因为它不是00:10:13。我试图截断最后的结肠,但它仍然无法区分minues / sec / hours

$recent_time = substr_replace($recent_time ,"",-1); 

修改

$converted_time = date('H:i:s',strtotime('$recent_time', strtotime('midnight')));

1 个答案:

答案 0 :(得分:2)

使用php strtotime函数

date('H:i:s',strtotime('1 hour 1 minute 1 second', strtotime('midnight'))); // 01:01:01
date('H:i:s',strtotime('2 hours 2 minutes 2 seconds', strtotime('midnight'))); // 02:02:02
date('H:i:s',strtotime('10 minutes 13 seconds', strtotime('midnight'))); // 00:10:13