Php 从mysql列中求出的累计时间
我试图从数据库中的几个不同的列中分别合计所有的TimeDate,但是当每个列的合计超过24小时时,我只打印00:00而不是实际的合计 我知道PHPDATEH变量只包含00-23,所以我不确定这样做的最佳方式。任何帮助都将不胜感激 我的SQL选择代码是: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(
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午餐相加为午餐,但现在效果很好,谢谢: