【发布时间】:2016-07-26 09:11:31
【问题描述】:
需要找出周末的总小时数,即周五、周六和周日以及其他工作日。 使用以下代码,但它没有产生预期的结果。
$start_day = date('w', $start_time);
$start_hour = date('G', $start_time);
$end_day = date('w', $end_time);
$end_hour = date('G', $end_time);
$normal_hours = $surge_hours = 0;
for (;($start_hour < 24 && $start_day <= $end_day); $start_hour++) {
switch ($start_day) {
case 0: $surge_hours++;
break;
case 5: $surge_hours++;
break;
case 6: $surge_hours++;
break;
case 1: $normal_hours++;
break;
case 2: $normal_hours++;
break;
case 3: $normal_hours++;
break;
case 4: $normal_hours++;
break;
}
echo __line__;
echo "<pre>";
print_r('surgehours'.$surge_hours);
echo "<br/>";
print_r('normalhours'.$normal_hours);
echo "<pre/>";
if ($start_hour == 23) {
$start_hour = 0;
$start_day++;
}
if ($start_day == $end_day) {
if ($start_hour == $end_hour)
break;
}
}
失败的用例:
如果开始日是星期五,即:7 月 29 日,结束日是 8 月 1 日 ($start_day = 5 and $end_day = 1)
它不会进入循环。
知道如何计算小时数吗?
【问题讨论】:
-
您的计算是否受到一周的限制,或者可能超过一周/月/年?
-
它可以是任何东西@Wizard
-
您的解决方案过于复杂,并且存在问题,例如,您的 $start_day 总是在循环内递增,如果它是 6,那么您将有 7 用于下一次迭代。跨度>
-
@Wizard 如何使其成为一个简单的解决方案并计算小时数
标签: php codeigniter datetime