PHP减去时间得到负面结果

时间:2017-03-24 02:32:58

标签: php laravel-5

我想获得Time in和Time out然后获得渲染的小时,分​​钟和秒,但我在这里减去时间的问题是样本结果

时间:10:00:33 超时:10:01:30

呈现的总小时数:0 呈现的总分钟数:1 渲染的总秒数:-3

在上面的示例中它已经返回1分钟,即使它还没有1分钟,并且在秒内它返回负值

这是我的代码

$time_out = date("H:i:s");
$nerd->time_out = $time_out;
$time_o = explode(":", $time_out);
$time = explode(":", $nerd->time_in);
$hours = $time_o[0] - $time[0];
$minutes = $time_o[1] - $time[1];
$seconds = $time_o[2] - $time[2];   

if($minutes < 2){
   $minutes_r = 0;
}else if($minutes <= 15){
   $minutes_r = 15;
}else if($minutes <= 30){
   $minutes_r = 30;
}else if($minutes <= 45){
   $minutes_r = 45;
}else{
   $minutes_r = 0;
}

在我的代码中,我会花时间来获取小时,分钟和秒的值。

任何人都可以提出更好的方法,这样就不会有负面结果吗?

1 个答案:

答案 0 :(得分:1)

在中间添加:

  if($seconds < 0) {
        $seconds += 60; 
        $minutes--;
  }
  if($minutes < 0) {
        $minutes += 60; 
        $hours--;
  }