计算两个日期和小时之间的小时分钟和天数

我有一个 PHP 和 MySQL 代码,它应该计算两个日期和小时之间的小时分钟和天数。效果很好,只是比平时多增加了 20 小时 20 分钟。我删除了 DATE 部分并手动输入日期和时间,它工作正常。


我不明白会发生什么。


    $fecha = $row["fecha"];

        $data= $row["hora"];

$start = strtotime("$fecha $hora"); 



$currentDate = date("Y-m-d");

$currentTime = date("H:i:s");

$currentDate =  date("Y-m-d H:i:s", strtotime($currentDate .$currentTime));


$end = strtotime("$currentDate"); 




$totaltime = ($end - $start)  ; 


$hours = intval($totaltime / 3600);   

$seconds_remain = ($totaltime - ($hours * 3600)); 


$minutes = intval($seconds_remain / 60);   

$seconds = ($seconds_remain - ($minutes * 60));

$statusfichaje= $row["status"];

if ($statusfichaje == Start){echo '<td>Trabajando'.$hours.':'.$minutes.':'.$seconds.' </td>';}else{echo '<td>'. $row["status"] .'</td>';}

编辑

2019-12-29 21:27:50 开始。2019 年 12 月 31 日结束 0:51:50 = 47:51:16


如您所见,它的计算很糟糕。


饮歌长啸
浏览 128回答 2
2回答

RISEBY

像这样一个简单的例子就可以完成这项工作:$mydatetime = new DateTime();$datefromdb = new DateTime('2018-03-05 10:10:00');$interval = $mydatetime->diff($datefromdb);$date_count = $interval->format('%y years %m months %a days %h hours %i minutes %s seconds');echo $date_count;这是你应该工作的代码$fecha = $row["fecha"];$data= $row["hora"];$start = strtotime("$fecha $data");&nbsp;$currentDate = date("Y-m-d");$currentTime = date("H:i:s");$currentDate =&nbsp; date("Y-m-d H:i:s", strtotime($currentDate .$currentTime));$end = strtotime("$currentDate");&nbsp;$totaltime = ($end - $start)&nbsp; ;&nbsp;$hours = intval($totaltime / 3600);&nbsp; &nbsp;$seconds_remain = ($totaltime - ($hours * 3600));&nbsp;$minutes = intval($seconds_remain / 60);&nbsp; &nbsp;$seconds = ($seconds_remain - ($minutes * 60));$statusfichaje= $row["status"];if ($statusfichaje == $start){echo '<td>Trabajando'.$hours.':'.$minutes.':'.$seconds.' </td>';}else{echo '<td>'. $row["status"] .'</td>';}

繁花如伊

问题出在字符串中。&nbsp;&nbsp;$data=&nbsp;$row["hora"];我用这个$start&nbsp;=&nbsp;strtotime("$fecha&nbsp;$hora");并且不要花时间只计算几天。
打开App,查看更多内容
随时随地看视频慕课网APP