Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何计算两个固定时间之间的两次?_Php - Fatal编程技术网

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

Php 如何计算两个固定时间之间的两次?,php,Php,我想计算考勤表上的小时数 但我不想计算不在这两个时间之间的小时和分钟,即:08:00到14:00 例如: 员工A在09:00到达工作地点,16:00离开 结果应该是5小时 如果员工B在8:30上班,14:00离开 结果应该是5小时30分钟 您可以使用Datetime对象来实现这一点。文件如下: 这是你的答案 <?php $restriction_start = strtotime("30-Mar-2015 08:00:00"); $restriction_end = strtotime(

我想计算考勤表上的小时数 但我不想计算不在这两个时间之间的小时和分钟,即:08:00到14:00

例如: 员工A在09:00到达工作地点,16:00离开 结果应该是5小时 如果员工B在8:30上班,14:00离开 结果应该是5小时30分钟


您可以使用Datetime对象来实现这一点。文件如下:


这是你的答案

<?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;
}
?>


显示一些努力。您已经编写了一些代码
min(14:00,EmployeeAves)-max(08:00,EmployeeAarrives)
echo$onclock2='08:00';echo$clockout2='14:05'//回声','//echo$onclick=$row['tbl_clockout']//echo$clockout=$row['tbl_clockout'];回显“|结果:”$onclock1=strotime($onclock2)$clockout1=strotime($clockout2);echo$diff=abs($onclock1-$clockout1)/3600;如果您提供代码描述,这将是更有效的答案
<?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;
}
?>
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;