这似乎应该有一个非常简单的解决方案,但是我正在尝试的一切都是给我一个错误或错误的结果。
我从MySQL表中提取数据,时间以Epoch格式存储在数据库中。当我在网站上进行查询时显示:3672(数据库中显示的数字相同)。我已经尝试过使用date()函数,一些不同的str *函数,不同的算术运算,但是没有什么能给我实际的时间,它应该显示为:'1:02'。
我不是想拉日期,实际时间等等。我只是想将Epoch时间字符串转换为传统的'H:mm'格式,因为这些是持续时间,而不是时间戳。
非常感谢任何帮助!
答案 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,如您所指定的那样。