这似乎应该有一个非常简单的解决方案,但我正在尝试的一切要么给我一个错误,要么给我错误的结果。
我正在从 MySQL 表中提取数据,时间以 Epoch 格式存储在数据库中。当我在网站上查询时显示:3672(与数据库中显示的数字相同)。我试过使用 date() 函数、许多不同的 str* 函数、不同的算术运算,但是没有任何东西给我实际时间,应该显示为:'1:02'。
我不是想提取日期、实际时间等。我只是想将 Epoch 时间字符串转换为传统的“H:mm”格式,因为这些是持续时间,而不是时间戳。
如有任何帮助,我们将不胜感激!
最佳答案
正如其他人已经注意到的,这实际上不是任何标准的纪元时间,而只是自午夜以来的秒数。
查看您的示例,您只需要小时和分钟(四舍五入)。这会给你那些:
$h = (int)($number / 3600);
$m = ceil(($number - $h * 3600) / 60);
$result = sprintf('%d:%02d', $h, $m);
将数字除以 3600(秒数 60 * 分钟数 60)将得到小时数。使用您的 3672 示例,这将为您提供 1。
要得到分钟,您只需删除小时得到秒 (72),然后将其除以 60 得到分钟(1 分 12 秒)。由于您的示例指定 1:02 是结果,您可以简单地取下一个较大的整数 (2)。
最终结果是 1:02,正如您指定的那样。
关于php - 将纪元时间转换为 H :mm timestamp in PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14432775/