PHP - 将秒数转换为分钟差异

时间:2013-08-27 21:54:05

标签: php date datetime-conversion

我遇到了将整数转换为定义的分钟数的差异。

<?php
$seconds = 269;
echo date("G:i:s", $seconds);
// result: 0:04:29
?>

我想我会在某些网站上仔细查看转换是否正确:

这是我发现的一个: http://www.thecalculatorsite.com/conversions/time.php

返回的结果是:4.4833333333333

示例1返回: 0:04:29 示例2返回: 4.4833333333333

我对此感到困惑。 我在这里想念的是什么我是否错误地使用date()功能?

2 个答案:

答案 0 :(得分:0)

小心date()。它希望提供一个PHP时间戳,这是自1970年1月1日午夜以来的秒数。对于小的时间戳值,它会“起作用”,但是当你传入“更大”的时间戳时会越来越错,因为你将在1970年处理几个月/几天/几年,再加上傻瓜等......

至于转换,它有什么问题? 4.48333 ...是4分钟,而0.483333只是29/60。

答案 1 :(得分:0)

您可以使用DateTime课程进行时间计算:

代码:

$start = new DateTime;
$end = clone $start;
$end->modify('+269 seconds');
$diff = $start->diff($end);
print_r($diff);

输出:

DateInterval Object
(
    [y] => 0
    [m] => 0
    [d] => 0
    [h] => 0
    [i] => 4
    [s] => 29
    [invert] => 0
    [days] => 0
)

正如您在输出中所看到的,您拥有所需的所有信息。要访问它,只需使用$diff->i分钟,$diff->s分钟等等。