2017-06-29 158 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