我有一个数据库,用于收集用户进出时间的输入。我正在收集这些信息,如下所示:
user_id clock_in clock_out
612 1383710400 1383728400
612 1384315200 1384333200
508 1383710400 1383738400
在循环时,我计算每个对象的小时数,如下所示:
$total=(($e->clock_out-$e->clock_in)/60/60);
我被困的地方
我对如何将它们分组为付薪期有点困惑。我知道一年有26个发薪期。我还知道我们今年的起薪期是 01.13.14 - 01.26.14
。
我尝试过的:
我想尝试在循环数据库结果时收集一年中的星期date('W',$e->clock_in)
,但我不确定如何对它们进行分组。
问题:
在 foreach
期间循环时是否可以进行分组/排序?您是否建议采用不同的方法将数据分组/排序到支付周期中?
如果需要更多代码等,请告诉我。谢谢!
最佳答案
假设这些是标准的 Unix 时间戳,您可以以任何您想要的方式轻松提取/修改日期。如果您的工作周对应于标准日历周,那就更容易了:
SELECT user_id, clock_in-clock_out
FROM yourtable
GROUP BY WEEK(FROM_UNIXTIME(clock_in))
这只会按周进行分组,但这只是为了给您一个总体思路。
MySQL 有多种日期/时间函数可用于此目的:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week
关于php - 根据 14 天工资期计算工资期 - PHP/SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21792036/