我有一个数据库,可以收集用户输入的时间。我这样收集这些信息:
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
期间循环时是否可以进行分组/排序?您是否建议采用不同的方法将数据分组/分类为付费期?
如果需要更多代码,请告诉我。等等。谢谢!
答案 0 :(得分:1)
假设这些是标准的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