Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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_Mysql - Fatal编程技术网

在php中查找日班和夜班的工作时间

在php中查找日班和夜班的工作时间,php,mysql,Php,Mysql,我正在用php/mysql做考勤系统。在这里,我得到了一个逻辑问题,当计算夜班工作时间,如果外出时间为零 if(isset($_POST['date'])) { $date = $_POST['date']; } else { $date = date('Y-m-d'); } $select = mysql_query("select * from `timelog` where `date`='$date' ORDER BY `time`"); $i=1; while($row = m

我正在用php/mysql做考勤系统。在这里,我得到了一个逻辑问题,当计算夜班工作时间,如果外出时间为零

if(isset($_POST['date']))
{
  $date = $_POST['date'];
}
else
{
  $date = date('Y-m-d');
}
$select = mysql_query("select * from `timelog` where `date`='$date' ORDER BY `time`");
$i=1;
while($row = mysql_fetch_array($select))
{
  if($i==1)
  {
    $fv=$row['time'];
    $first_value=new DateTime($row['time']);
    $k=0;
  }
  if($i==2)
  {
    $sv=$row['time'];
    $second_value=new DateTime($row['time']);
    $difference = $first_value->diff($second_value);
    $total = $difference->format('%h hours %i minutes %s seconds');
    ?>
    <tr><td><?php echo $row['name'];?></td>
    <td><?php echo $row['cardno'];?></td>
    <td><?php echo $row['date'];?></td>
    <td><?php echo date("g:i:s a", strtotime("$fv"));?></td>
    <td><?php echo date("g:i:s a", strtotime("$sv"));?></td>
    <td><?php echo $total;?></td></tr>
    <?php
    $k=1;
  }  
  $i++;
  if($k==1)
 {
  $i=1;
 }
}
if(设置($\u POST['date']))
{
$date=$_POST['date'];
}
其他的
{
$date=日期('Y-m-d');
}
$select=mysql\u查询(“从'timelog'中选择*,其中'date`='$date'按'time`排序”);
$i=1;
while($row=mysql\u fetch\u array($select))
{
如果($i==1)
{
$fv=$row['time'];
$first_value=新日期时间($row['time']);
$k=0;
}
如果($i==2)
{
$sv=$row['time'];
$second_value=新日期时间($row['time']);
$difference=$first\u value->diff($second\u value);
$total=$difference->格式(“%h小时%i分钟%s秒”);
?>
if(date(“His”)=“070000”和date(“His”)=“150000”和date(“His”)=“230000”){$shift\u id=“N”;}打印$shift\u id;

你想做什么?我没有在你的代码中读到任何“夜间”、“轮班”甚至“小时”。也许你可以自己尝试一下,然后告诉我们你在哪里堆放?我在这里指定了奇数行是及时的,偶数行是超时的。但我不知道如何为夜间找到什么是“夜间”对你来说?晚上9点到6点之间的整个班次?或者只是该时间窗口中班次的一部分?或者另一个时间窗口?如果你能回答这个问题,你可以相应地构建一个
If
结构。如果时间=06:59:59,那么班次
if (date("His")<='065959') { $shift_id="N"; }
if (date("His")>='070000' AND date("His")    <='145959') { $shift_id="M"; }
if (date("His")>='150000' AND date("His")<='225959') { $shift_id="E"; }
if (date("His")>='230000') { $shift_id="N"; } print $shift_id;