Php 将大量秒数转换为'H:i:s'格式

Php 将大量秒数转换为'H:i:s'格式,php,mysql,Php,Mysql,在下图中 SEC_TO_TIMESUMTIME_TO_SECtalktime值位于右侧,并且 SUMTIME_TO_SECtalktime在左边 SEC_TO_TIMESUMTIME_TO_SECtalktime给出的最后一个值是838:59:59 我试过这个回音gmdateH:I:s,4874010;。但这也有86400的限制 你能帮我把大量的秒数转换成H:i:s格式吗。你的时间类型溢出了。我认为MySQL的局限性非常明确: MySQL以“HH:MM:SS”格式或 大小时值的“HHH:MM:S

在下图中

SEC_TO_TIMESUMTIME_TO_SECtalktime值位于右侧,并且

SUMTIME_TO_SECtalktime在左边

SEC_TO_TIMESUMTIME_TO_SECtalktime给出的最后一个值是838:59:59

我试过这个回音gmdateH:I:s,4874010;。但这也有86400的限制


你能帮我把大量的秒数转换成H:i:s格式吗。

你的时间类型溢出了。我认为MySQL的局限性非常明确:

MySQL以“HH:MM:SS”格式或 大小时值的“HHH:MM:SS”格式。时间值的范围为 “-838:59:59”至“838:59:59”

编辑:

您可以手动将秒数转换为时间:

select concat_ws(':',
                 floor(SUM(TIME_TO_SEC(talktime)) / 3600),
                 lpad(mod(floor(SUM(TIME_TO_SEC(talktime) / 60)), 60), 2, '0'),
                 lpad(mod(SUM(TIME_TO_SEC(talktime)), 60), 2, '0')
                )

在PHP中,您可以使用内置的DateTime类进行此类操作

例如:

$seconds = 4874010;
echo DateTime::createFromFormat("!d","1")->diff(new DateTime("@$seconds"))->format("%a days, %h hours, %m minutes, %s seconds");
输出:

56天4小时1分30秒