2017-07-18 84 views
1

嗨我想獲得分鐘的差異,它總是返回一個正整數是否有一種方法,我們可以得到整數值。這裏是我試圖所以Laravel解析日期,並在幾分鐘內得到差異

 $connections = ChatConnection::all(); 

    foreach ($connections as $con) { 
     $monthdate = Carbon::parse($con->last_connected_at)->addMinute(5); 
     $dateDiff = Carbon::now()->diffInMinutes($monthdate); 

     $this->info($dateDiff); 

    } 

$this->info($dateDiff);這總是返回正整數的代碼。

如果消息連接時間超過5分鐘,我必須檢查列發送推送通知。

有沒有不錯的方法?

回答

0

添加last_connected_at到$日期在你的模型: protected $dates = ['last_connected_at']; 然後laravel總是還給碳實例。

比你可以做以下

$connections = ChatConnection::all(); 

foreach ($connections as $con) { 
    if($con->last_connected_at > Carbon::now()->subMinutes(5)){ 
     // Code 
    } 
} 

或者重構這個

$connections = ChatConnection::all(); 

$connections->each(function($con){ 
    if($con->last_connected_at > Carbon::now()->subMinutes(5)){ 
     // Code 
    } 
}); 
1

在默認情況下,diffInMinutes()總是返回正整數。

爲了得到差的正負值,

你有diffInMinutes()函數添加false參數是這樣的:

foreach ($connections as $con) { 
    $monthdate = Carbon::parse($con->last_connected_at)->addMinute(5); 
    $dateDiff = Carbon::now()->diffInMinutes($monthdate,false); 

    $this->info($dateDiff); 
} 

希望你能理解。