我想计算出勤表中的小时数 但是我不想计算不是这两次之间的小时和分钟:08:00到14:00
例如: 员工A在09:00到达工作,在16:00离开 结果应该是5个小时 如果员工B在8:30到达工作岗位并在14:00离开 结果应该是5小时30分钟
亲切的问候
答案 0 :(得分:0)
您可以使用Datetime对象来执行此操作。有文档:http://php.net/manual/en/datetime.diff.php
<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>
答案 1 :(得分:0)
这是你的答案
<?php
$restriction_start = strtotime("30-Mar-2015 08:00:00");
$restriction_end = strtotime("30-Mar-2015 14:00:00");
$start_time = strtotime("30-Mar-2015 09:00:00");
$end_time = strtotime("30-Mar-2015 16:00:00");
echo calculateTime($start_time, $end_time, $restriction_start, $restriction_end);
function calculateTime($start_time, $end_time, $restriction_start, $restriction_end)
{
$start = $restriction_start;
if($start_time>$restriction_start)
{
$start = $start_time;
}
$end = $restriction_end;
if($end_time<$restriction_end)
{
$end = $end_time;
}
$time_diff = $end-$start;
$output = gmdate("H:i:s", $time_diff);
return $output;
}
?>
答案 2 :(得分:0)
var $NbrSec = mktime($hour1, $minute1, $second1, $month1, $day1, $year1)
- mktime($hour2, $minute2, $second2, $month2, $day2, $year2);
var $Hr = ((int)($NbrSec / 60)) * 60;
var $Mn = $NbrSec % 60;
echo $Hr . ":" . $Mn;