从mysql列总计的时间

时间:2011-04-25 08:58:01

标签: php mysql time strtotime

我试图从我的数据库中的几个不同列中单独累计所有时间日期,但是当每个时间的总数超过24小时时 - 我只打印00:00而不是实际总数。

据我所知,PHP日期“H”变量仅涵盖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);

1 个答案:

答案 0 :(得分:0)

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

你应该通过将秒数除以这样来得出小时/分钟:

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