我有一份报告,通过检索日期,打卡和打卡并计算持续时间来计算员工的工作时间,这些数据会保存到一个数组中,根据工资核算期显示,这里是根据工资计算付款的代码每周一次(在数组内循环)
foreach($punch_sets as $val){
if ($currentmonth==""){
echo "<tr><td>" . date("W",strtotime($val['in_date'])) . "</td>";
}
if ($currentmonth1 == date("F",strtotime($val['in_date'])) || $currentmonth1 ==""){
if ($currentmonth == date("W",strtotime($val['in_date'])) || $currentmonth==""){
$total_time += $minSec + $hours*3600;
$currentmonth = date("W",strtotime($val['in_date']));
}
else
{
echo "<td>" . sec2hm($total_time) . "</td>";
echo "<td>" . (sec2hm($total_time) * $ratepaid) . "</td></tr></tr>";
$currentmonth ="";
$total_time = $minSec + $hours*3600;
}
}
else {
$total_time = $minSec + $hours*3600;
}
$currentmonth1 = date("F",strtotime($val['in_date']));
}
这里的问题是如何调整此逻辑以获得每周计算而不是每周计算。
答案 0 :(得分:0)
而不是使用:
date("W",strtotime($val['in_date']))
分组依据,分组:
floor(date("W",strtotime($val['in_date']))/2);
您可能希望将$currentmonth
更改为$currentperiod
,以反映原始脚本从每月更改为每周更改为现在每两周更改一次。