在PHP中将纪元时间转换为H:mm时间戳

时间:2013-01-21 04:53:15

标签: php mysql time epoch

这似乎应该有一个非常简单的解决方案,但是我正在尝试的一切都是给我一个错误或错误的结果。

我从MySQL表中提取数据,时间以Epoch格式存储在数据库中。当我在网站上进行查询时显示:3672(数据库中显示的数字相同)。我已经尝试过使用date()函数,一些不同的str *函数,不同的算术运算,但是没有什么能给我实际的时间,它应该显示为:'1:02'。

我不是想拉日期,实际时间等等。我只是想将Epoch时间字符串转换为传统的'H:mm'格式,因为这些是持续时间,而不是时间戳。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

正如其他人已经注意到的那样,这不是真正的标准纪元时间,而只是午夜以来的秒数。

看看你的例子,你只需要几小时和几分钟(四舍五入)。这会给你那些:

$h = (int)($number / 3600);
$m = ceil(($number - $h * 3600) / 60);
$result = sprintf('%d:%02d', $h, $m);

将数字除以3600(60秒(60分钟),60分钟)将给出您的小时数。使用3672的示例,这将为您提供1。

要获得分钟,您只需删除几小时即可获得秒数(72),然后将其除以60得到分钟(1分12秒)。由于您的示例指定结果为1:02,因此您可以简单地采用下一个上整数(2)。

最终结果是1:02,如您所指定的那样。