Php 从mysql列中求出的累计时间

Php 从mysql列中求出的累计时间,php,mysql,time,strtotime,Php,Mysql,Time,Strtotime,我试图从数据库中的几个不同的列中分别合计所有的TimeDate,但是当每个列的合计超过24小时时,我只打印00:00而不是实际的合计 我知道PHPDATEH变量只包含00-23,所以我不确定这样做的最佳方式。任何帮助都将不胜感激 我的SQL选择代码是: SEC_TO_TIME( SUM( TIME_TO_SEC(lunch) ) ) AS lunch, SEC_TO_TIME( SUM( TIME_TO_SEC(overtime) ) ) AS overtime, SEC_TO_TIME(

我试图从数据库中的几个不同的列中分别合计所有的TimeDate,但是当每个列的合计超过24小时时,我只打印00:00而不是实际的合计

我知道PHPDATEH变量只包含00-23,所以我不确定这样做的最佳方式。任何帮助都将不胜感激

我的SQL选择代码是:

SEC_TO_TIME( SUM( TIME_TO_SEC(lunch) ) ) AS lunch, 
SEC_TO_TIME( SUM( TIME_TO_SEC(overtime) ) ) AS overtime, 
SEC_TO_TIME( SUM( TIME_TO_SEC(day_paid) ) ) AS day_paid, 
SEC_TO_TIME( SUM( TIME_TO_SEC(lunch) ) ) AS lunch, 
SEC_TO_TIME( SUM( TIME_TO_SEC(holiday) ) ) AS holiday, 
SEC_TO_TIME( SUM( TIME_TO_SEC(absence) ) ) AS absence
作为午餐示例,我的视图代码是:

echo date('H:i', strtotime($day_breakdown->day_paid);

您编写的MySQL代码很好,但是视图代码不起作用,因为它设计用于处理日期/时间,而不是相对时间段

您应该通过如下方式将秒除以,得出小时/分钟:

$hours = floor($seconds / 3600);
$minutes = floor($seconds / 60) % 60;

只需通过删除SEC_to_TIME部分稍微更改我的SQL,将TIME_to_SEC午餐相加为午餐,但现在效果很好,谢谢: