PHP-相互扣除两个时间戳,以分钟为单位显示

PHP-相互扣除两个时间戳,以分钟为单位显示,php,mysql,timestamp,Php,Mysql,Timestamp,我有一个mySQL数据库,它存储一个人在健身房的签到和退房时间。我已经将签入和签出时间导入到我的PHP脚本中。现在我想把这两个时间戳相互扣除——给我剩下的时间。我希望这能在几分钟内显示出来 这是我的想法: $checkOut = "2016-01-31 15:01:11"; $checkIn = "2011-01-31 15:32:35"; echo ($checkIn - $checkOut); // I want this to display 31 minutes. 我看过很多关于S

我有一个mySQL数据库,它存储一个人在健身房的签到和退房时间。我已经将签入和签出时间导入到我的PHP脚本中。现在我想把这两个时间戳相互扣除——给我剩下的时间。我希望这能在几分钟内显示出来

这是我的想法:

$checkOut = "2016-01-31 15:01:11";
$checkIn = "2011-01-31 15:32:35";
echo ($checkIn - $checkOut);

// I want this to display 31 minutes. 
我看过很多关于StackOverflow的例子,但是没有一个与我的描述相匹配,我也无法对我找到的那些进行反向工程,因为它们使用time()函数,我想这会占用当前时间

$checkOut = "2016-01-31 15:01:11";
$checkIn = "2011-01-31 15:32:35";
 $time = (strtotime($checkIn) - strtotime($checkOut));
echo date('i',$time);
使用此代码

使用此代码

您可以使用

IMP注意:上述方法仅在分钟数低于59分时有效,否则小时数将四舍五入并丢弃。因此,如果您的需求以分钟为单位显示的时间可能大于59分钟,例如144分钟,那么您只需除以60,如下所示

    $checkOut = "2016-01-31 15:01:11"; // initial value
    $checkIn = "2011-01-31 15:32:35"; // initial value

    $checkOut_stamp = strtotime($checkOut); // Converting to unix timestamp
    $checkIn_stamp = strtotime($checkIn);  // Converting to unix timestamp
    $seconds = $checkOut_stamp - $checkIn_stamp;
    if($seconds > 0){
      if($seconds > 60){
       $minutes = $seconds/60;
      } else {
       $minutes = 0;
      }
    } else {
      $minutes = 0;
    }

    echo  $minutes . ' Minute(s)';
你可以使用

IMP注意:上述方法仅在分钟数低于59分时有效,否则小时数将四舍五入并丢弃。因此,如果您的需求以分钟为单位显示的时间可能大于59分钟,例如144分钟,那么您只需除以60,如下所示

    $checkOut = "2016-01-31 15:01:11"; // initial value
    $checkIn = "2011-01-31 15:32:35"; // initial value

    $checkOut_stamp = strtotime($checkOut); // Converting to unix timestamp
    $checkIn_stamp = strtotime($checkIn);  // Converting to unix timestamp
    $seconds = $checkOut_stamp - $checkIn_stamp;
    if($seconds > 0){
      if($seconds > 60){
       $minutes = $seconds/60;
      } else {
       $minutes = 0;
      }
    } else {
      $minutes = 0;
    }

    echo  $minutes . ' Minute(s)';

若您是从数据库中获取这个记录,那个么您可以使用MySql函数简单地实现它,因为这里不需要使用PHP函数

Select TIMESTAMPDIFF(MINUTE,checkIn,checkout) as tot_diff from your_table

若您是从数据库中获取这个记录,那个么您可以使用MySql函数简单地实现它,因为这里不需要使用PHP函数

Select TIMESTAMPDIFF(MINUTE,checkIn,checkout) as tot_diff from your_table

谢谢,这工作做得很好。一个问题:echo中的'i'是什么日期('i',$time);是吗?谢谢你,这很有效。一个问题:echo中的'i'是什么日期('i',$time);do?
“i”
标志以分钟为单位返回日期。谢谢。这正是我需要的。我很高兴你意识到分钟可以超过60分钟。我很高兴:)
“I”
标志以分钟为单位返回日期。谢谢。这正是我需要的。我很高兴你意识到分钟可以超过60分钟。我很高兴:)嘿。我认为这可能是更好的使用。但是,如何在PHP脚本中实现这一点?我需要回显timestampdiff,但这不起作用:
include(“includes/connection.php”);echo“PHP正在工作”$query=“从活动中选择TIMESTAMPDIFF(分钟、签入、签出)”$结果=mysqli($conn,query);回声$结果抱歉,我似乎无法将代码隔开。我不能插入空行。抓取
mysqli\u fetch\u数组如何?你忘了,嘿。我认为这可能是更好的使用。但是,如何在PHP脚本中实现这一点?我需要回显timestampdiff,但这不起作用:
include(“includes/connection.php”);echo“PHP正在工作”$query=“从活动中选择TIMESTAMPDIFF(分钟、签入、签出)”$结果=mysqli($conn,query);回声$结果抱歉,我似乎无法将代码隔开。我不能插入空行。关于fetching
mysqli\u fetch\u array
你忘了“我想让它显示31分钟”。你不能,因为你所说的日期时间之间的差异大约在5年左右!!!哈哈,我都没意识到。我换了第一个,但没有换第二个。我很抱歉。“我想让它显示31分钟。”你不能,因为你所说的日期时间之间的差异大约在5年左右!!!哈哈,我都没意识到。我换了第一个,但没有换第二个。我道歉。