Php 拉维碳纤维检查时间是否在同一分钟内

Php 拉维碳纤维检查时间是否在同一分钟内,php,laravel,datetime,laravel-5,Php,Laravel,Datetime,Laravel 5,我有来自数据库的datetime和来自input='time'字段的datetime 我有一个datetime不带秒(所以它默认为00),还有一个带秒。我需要检查这两个变量是否在同一分钟内 例如:这是真的 Carbon {#349 ▼ +"date": "2017-11-06 14:47:00.000000" +"timezone_type": 3 +"timezone": "America/Chicago" } Carbon {#362 ▼ +"date": "2017-11-

我有来自数据库的datetime和来自
input='time'
字段的datetime

我有一个datetime不带秒(所以它默认为00),还有一个带秒。我需要检查这两个变量是否在同一分钟内

例如:这是真的

Carbon {#349 ▼
  +"date": "2017-11-06 14:47:00.000000"
  +"timezone_type": 3
  +"timezone": "America/Chicago"
}
Carbon {#362 ▼
  +"date": "2017-11-06 14:47:44.000000"
  +"timezone_type": 3
  +"timezone": "America/Chicago"
}
例如:对于False

Carbon {#349 ▼
  +"date": "2017-11-06 14:48:00.000000"
  +"timezone_type": 3
  +"timezone": "America/Chicago"
}
Carbon {#362 ▼
  +"date": "2017-11-06 14:47:44.000000"
  +"timezone_type": 3
  +"timezone": "America/Chicago"
}
我现在有这个,但它会在60秒内显示出来。我很难显示它是否在同一分钟内

$InsertTime = 2017-11-06 14:47
$DbTime = 2017-11-06 14:47:44


public function WithinMinCheck($InsertTime, $DbTime) {
   $WithinMin = "true";
   $InsertTime = Carbon::createFromFormat('Y-m-d H:i', $InsertTime);
   $DbTime = Carbon::createFromFormat('Y-m-d H:i:s', $DbTime);
   $difference = $InsertTime->diffInSeconds($DbTime);
   if ($difference >= 60) {
    $WithinMin = "false";
   } else {
    $WithinMin = "true";
   }

   return $WithinMin;
}

为什么不将日期作为字符串进行比较呢?这很简单

$InsertTime = '2017-11-06 14:47';
$DbTime = '2017-11-06 14:47:44';

public function WithinMinCheck($InsertTime, $DbTime) {
   return (strpos($DbTime, $InsertTime) === 0);
}

难道你不能将第二个时间变量的第二个字段设置为0并比较这些值吗

$newTime = $DbTime->copy()->second(00);
if($InsertTime->ne($newTime)) {
    $WithinMin = "false";
}
return $WithinMin;  //since $withinMin is set to true initially, it would only be false if Insertime is not equal
请记住,只有当分钟值相同时,上述解决方案才会起作用。如果第二次具有不同的分钟值,则无论它是否在第一次的60秒内,它都将返回false