我遇到了将整数转换为定义的分钟数的差异。
<?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()
功能?
答案 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
分钟等等。