2017-06-29 159 views
1

有沒有最簡單的方法來計算剩餘的要birthady?生日前剩餘的天數 - laravel - 碳

有一個類似的問題:

Days remaining before birthday in php

,但我想用Carbon庫。

喜歡:1989-6-30


更新

​​

但它返回0

getDifferenceTwoDate('1991-5-22') 

但它返回-38

+0

您是否嘗試過Carbon提供的diffInDays功能? – ceejayoz

+0

是的,但它返回一個大的日子:'$ startTime = Carbon :: parse(date('Y-m-d')); $ finishTime = Carbon :: parse($ date); return $ finishTime-> diffInDays($ startTime);' –

+0

啊,我明白了。那麼你必須在那裏做更多的手動邏輯。取出生日期,做' - > year(date('Y'))'將今年設置爲今年(如果他們今年的生日已經過了,有一些邏輯可以設置爲* next * year) ),然後*以天爲單位進行差異。 – ceejayoz

回答

2

假設$生日是碳例子,你可以用一年恢復到今年:

$birthday->year(date('Y')); 

然後你可以從現在得到的天差。第二個參數爲false確保過去的日期將返回負值,未來的日子將返回正值。

Carbon::now()->diffInDays($birthday, false); 

所以,如果你得到-30你需要根據明年來計算,如果你30,你有30天,直到他們的生日。

+0

更新了我的問題。 –

+0

@ S.M_Emamian,就像我說過的那樣,如果它返回負值,則需要根據下一年計算。 – Devon