如何使用php获取总工作时间
我必须找出员工的总工作时间 我手里的变量是如何使用php获取总工作时间,php,Php,我必须找出员工的总工作时间 我手里的变量是 $work_time_start = "8:00:00"; $work_time_end = "18:00:00"; $lunch_break_start = "13:00:00"; $lunch_break_end = "14:00:00"; 从这一点,我必须找到一个员工的总工作时间 比如说 //example 1 $work_start_time = "14:00:00"; $work_end_time = "14:25:00"; /
$work_time_start = "8:00:00";
$work_time_end = "18:00:00";
$lunch_break_start = "13:00:00";
$lunch_break_end = "14:00:00";
从这一点,我必须找到一个员工的总工作时间
比如说
//example 1
$work_start_time = "14:00:00";
$work_end_time = "14:25:00";
//The output should be: 00:25:00
//example 2
$work_start_time = "14:00:00";
$work_end_time = "10:25:00";
//The output should be: 06:25:00
如何实现所需的输出。我不知道。根据要求详细回答
$work_time_start = "8:00:00";
$work_time_end = "18:00:00";
$lunch_break_start = "13:00:00";
$lunch_break_end = "14:00:00";
$worktime = convert_to_seconds($work_time_end) - convert_to_seconds($work_time_start);
$lunchtime = convert_to_seconds($lunch_break_end) - convert_to_seconds($lunch_break_start);
$worktime = $worktime - $lunchtime;
echo $worktime;
function convert_to_seconds($str_time)
{
$str_time = preg_replace("/^([\d]{1,2})\:([\d]{2})$/", "00:$1:$2", $str_time);
sscanf($str_time, "%d:%d:%d", $hours, $minutes, $seconds);
$time_seconds = $hours * 3600 + $minutes * 60 + $seconds;
return $time_seconds;
}
希望这有帮助
$work_start_time =new DateTime("14:00:00");
$work_end_time = new DateTime("14:25:00");
$interval = $work_end_time->diff($work_start_time);
echo $interval->format('%H:%I:%S');
使用以下代码:
$work_time_start = "8:00:00";
$work_time_end = "18:00:00";
$lunch_break_start = "13:00:00";
$lunch_break_end = "14:00:00";
$total_time = strtotime($lunch_break_start) - strtotime($work_time_start) + strtotime($work_time_end) - strtotime($lunch_break_end);
echo date("h:i:s", mktime(0,0, round($total_time) % (24*3600)));
将所有内容转换为普通秒,然后使用它,并根据需要转换回显示。这基本上就是在一些特殊情况下获得时差。这不是一个完全相同的问题,但你应该能够根据许多其他类似的问题得出答案。至少让我们看看您尝试了什么。为什么示例2的输出应该是06:25:00?您是否在24小时和12小时的混合时间格式中工作,而不定义哪个是哪个?如果是这样的话,不要指望这里有任何答案。你需要规范化你的数据。无法使用
$work\u start\u time
和$work\u end\u time