4Manuals

  • PDF Cloud HOME

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

    碳日期差异方法在Laravel 5.7中给出了错误的日期差异 日期时间比较Ruby on Rails 如何使用PHP将https错误状态设置为404,以便可以通过.htaccess文件处理? 通过dropzone laravel通过电子邮件发送多个图像 通过键合并两个数组,并将值附加到另一个数组中 电子邮件字段为空 如何在TCPDF中添加Jameel Noori Nastaleeq字体? 如何取消发布PHP Artisan Laravel模块 使用tomcat调用JavaBridge时获取404 如何在PHP中控制缓存

早上好

我有一个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
如您所见,它的计算效果很差。

2 个答案:

答案 0 :(得分:1)

像这样的简单示例即可完成工作:

$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"); 


$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>';}

答案 1 :(得分:-1)

问题出在字符串中。

  $data= $row["hora"];

我用这个

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

不要花几个小时就只计算几天。

谢谢



Similar searches
    有什么方法可以删除表情符号并将其他特殊字符保留在R中? 用户从RecycleView中选择标签后如何更改TextInput字段中的文本 在上载目录时this.form.submit()不起作用 navigator.serviceWorker.controller.postMessage为null,但仅在第一页加载时 当现有坐标旋转一个角度时,如何获取新坐标?