duanjian9148 2015-05-21 08:17
浏览 39
已采纳

为什么时间减法在回显后返回1而不是0

I have this table in my view

  duty   |  exact   |  undertime
12:00:00 | 12:00:00 | 01:00:00

undertime is the result of $hour = $duty - $exact, and when i

echo date("H:i:s",$hour);

it echoed 01:00:00, im expecting 00:00:00 for this. What did i miss?

here are my code, i use foreach because the duty and exact datas are from my database query.

<?php foreach($unique_date as $unique_dates):?>  
                <tr>
                  <td align="center" colspan="2">
                      <?php echo date($unique_dates['dtr_date']);?>
                  </td>
                  <td align="center" colspan="2">
                      <?php $timediffs = $unique_dates['timediffs'];
                            echo $timediffs;
                      ?>
                  </td>
                  <td align="center" colspan="2">
                      <?php $exact_total_sched = $unique_dates['exact_total_sched'];
                            echo $exact_total_sched;
                      ?>
                  </td>
                  <?php                         
                        $duty = strtotime($timediffs);
                        $exact = strtotime($exact_total_sched);
                  ?>
                  <?php
                        if($duty < $exact)
                        {
                          echo "<td align=\"center\" colspan=\"2\">";
                                #UNDERTIME  
                                $hour1 = $exact-$duty;
                                echo date("H:i:s",$hour1);
                          echo "</td>";
                          echo "<td align=\"center\" colspan=\"2\">";
                          echo date("00:00:00");
                          echo "</td>";
                        }
                     else if($duty > $exact)
                       {
                          echo "<td align=\"center\" colspan=\"2\">";
                           echo date("00:00:00");
                          echo "</td>";
                          echo "<td align=\"center\" colspan=\"2\">";
                                #OVERTIME
                                $hour2 = $duty-$exact;
                               echo date("H:i:s",$hour2);
                          echo "</td>";
                       }
                      else if($duty == $exact)
                       {
                          echo "<td align=\"center\" colspan=\"2\">";
                                $hour3 = $duty-$exact;
                          echo date("H:i:s",$hour3);
                          echo "</td>";
                          echo "<td align=\"center\" colspan=\"2\">";
                          echo date("00:00:00");
                          echo "</td>";
                       }
                      ?> 
                </tr>

              <?php endforeach ?>   
  • 写回答

2条回答 默认 最新

  • dty47696 2015-05-21 08:50
    关注

    You can use DateTime function along with date_diff as

    $date1=new DateTime("12:00:00");
    $date2=new DateTime("12:00:00");
    $diff = date_diff($date2,$date1);
    echo $diff->format('%H:%i:%s');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来