如何在两个固定时间之间计算两次?

时间:2015-03-30 09:24:00

标签: php

我想计算出勤表中的小时数 但是我不想计算不是这两次之间的小时和分钟:08:00到14:00

例如: 员工A在09:00到达工作,在16:00离开 结果应该是5个小时 如果员工B在8:30到达工作岗位并在14:00离开 结果应该是5小时30分钟

亲切的问候

3 个答案:

答案 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;