2015-10-06 17 views
0

我想計算兩個日期之間的差額,即工作顯示它們,但有顯示類似這樣的格式的功能:briannesbitt /碳數diff和在propper方式

  • 1一個月
  • 1年
  • 4小時

等等,你知道我的意思。

或許,我禁止用戶2個小時,然後它需要顯示用戶被禁止2個小時。

通過計算到期時間和banned_at時間。

這是我現在有:

date_diff(date_create(\Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $ban->banned_on)), date_create(\Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $ban->expire)))->format('d-m-y'); 

我怎樣才能做到這一點?

回答

0
$bannedAt = '2015-10-05 10:00:00'; 
$banLength = 2; 

$banTill = Carbon::parse($bannedAt)->addHours($banLength); 
$now = Carbon::now(); 

// If now is less than or equal to banTill then remaining minutes is the difference between now and bantill. Else, the remaining minutes is 0 
$remainingBanSeconds = $now->lte($banTill)?$now->diffInSeconds($banTill):0; 

echo echo gmdate('H \h\o\u\r\s\, i \m\i\n\u\t\e\s \a\n\d s \s\e\c\o\n\d\s', $remainingBanSeconds); 
+0

好的,我明白你的意思。但我的問題是,它需要計算兩個日期時間對象之間的時間。不是日期時間對象和2小時的字符串。但它需要說的是''2周4天7小時,直到解除禁令'「。所以我不知道我該怎麼做。 – Robin

+0

查看更新的答案。您可以獲得剩餘秒數,並使用gmdate獲取小時,分鐘和秒。 http://us3.php.net/gmdate – Gravy

+0

我認爲你不理解它。例如,我有2個'datetime'格式的表格。 '2015-10-06 19:59:01' =禁止,'2015-11-06 19:59:04'是到期時間。所以它需要計算禁令離開的時間。 – Robin