【发布时间】:2019-11-19 16:33:36
【问题描述】:
您好,我只是一个初级程序员,但我现在正在构建一个应用程序来获取总工作时间。
这里我有一个 time_start 数组,其中客户进出的阈值与 time_end
相同日志是此人签到的地方。
$time_start = [
[0] => '22:00:00',
[1] => '03:00:00',
];
$time_end = [
[0] => '02:00:00',
[1] => '08:00:00',
];
$logs = [
[0] => '2019-07-09 22:00:00',
[1] => '2019-07-10 02:00:00',
[2] => '2019-07-10 03:00:00',
[3] => '2019-07-10 08:00:00',
];
所以我试图得到他们在不同日期的夜班时间的总和。
我正在尝试进入:
foreach( $logs as $check_time ){
$attendance_date_time = date("Y-m-d",strtotime($check_time));
$time_starts = date('Y-m-d H:i:s', strtotime("$attendance_date_time $time_start"));
$time_ends = date('Y-m-d H:i:s', strtotime("$attendance_date_time $time_end"));
if ( $check_time >= $time_starts && $check_time <= $time_ends )
{
$time[] = $check_time;
}else{
$time = null
}
}
假设我将获取所有日志,因为它介于 time_start 和 time_end 之间并将其存储到 $time
并总结我得到的时间。
由于我是 php 新手,他们是否有最简单的方法来获得总工作时间?因为我得到一个空值,因为它得到的 time_end 是 check_in 的日期。
【问题讨论】:
-
求和意味着这些日期之间的总小时数是多少?
-
是的。在给定的日志中,结果将是 9 小时
-
怎么会是9个小时,你能解释一下吗?因为我看到了它的 5 小时!
-
2019-09-09 22:00到2019-09-10 02:00等于4hours。2019-07-10 03:00:00到2019-07-10 08:00:00等于5hours -
由于 $logs 在 time_in 和 out 之间,它将添加到 $time 数组中。并添加每个数组。等于 9 小时