时差我做得对吗?

时间:2017-10-12 13:37:05

标签: php sql time difference

我正在尝试衡量时差 我也在学习如何怀疑PHP ..

我将时间和日期保存为SQL作为datetime:

 $now = new DateTime();
 $datenow = $now->format('Y-m-d H:i:s');

  $sql = "INSERT INTO Logg ( logdate , Log  , value) VALUES ( '$datenow' , 'Log', '$value' )";

我现在可以进行查询并获取:

 $result = mysqli_query( $conn , $sqlq );
  while($row = mysqli_fetch_array($result)) { 
$myLogdate = $row['logdate'];

我所追求的是能够检查之间的时间

$myLogdate 

$now = new DateTime();
$datenow = $now->format('Y-m-d H:i:s');

我试过了:

$interval = $datenow->diff($myLogdate);
$elapsed = $interval->format('%y years %m months %a days %h hours %i minutes %s seconds');
echo $elapsed;

但我没有结果......

3 个答案:

答案 0 :(得分:1)

您可以使用date_diff

链接页面的示例:

<?php
    $datetime1 = new DateTime('2009-10-11');
    $datetime2 = new DateTime('2009-10-13');
    $interval = $datetime1->diff($datetime2);
    echo $interval->format('%R%a days');
?>

可能的格式列表可以是found here

答案 1 :(得分:0)

要查找日期差异,请尝试以下代码:

$interval = date_diff($datenow, $myLogdate);
echo $interval->format('%R%a days')

对于格式,间隔(例如“%R%a”表示+天)遵循http://php.net/manual/en/dateinterval.format.php

答案 2 :(得分:0)

waka提供的解决方案是:

$then = new DateTime($myLogDate);
$interval = date_diff($now, $then);
echo $interval->format('%R%a days');