0

I'm running into a discrepancy with either my conversion of an integer into defined Minutes.

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

I figured I'd double check on some sites to see if the conversion is correct:

Here's one I found: http://www.thecalculatorsite.com/conversions/time.php

The result returned is: 4.4833333333333

Example 1 returns: 0:04:29 Example 2 returns: 4.4833333333333

I'm confused about this. What am I missing here. Am I using the date() function incorrectly?

4

2 回答 2

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几秒钟等。

于 2013-08-28T13:46:45.037 回答
0

小心date()。它期望提供一个 PHP 时间戳,即自 1970 年 1 月 1 日午夜以来的秒数。它会为小的时间戳值“工作”,但是当你传递“更大”的时间戳时会变得越来越错误,因为你将处理 ​​1970 年的月/日/年,加上闰年等......

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

于 2013-08-27T21:58:53.463 回答