3 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
我想添加一個(gè)答案,因?yàn)槲艺J(rèn)為到目前為止的答案對于解決一個(gè)簡單的問題來說有點(diǎn)太多了。
$user->updated_at
字段是一個(gè) Carbon 日期實(shí)例,因此$last_transaction_date
也是。Carbon 有一個(gè)函數(shù)diffInDays()
可以給你提供今天和給定日期之間的天數(shù)差異。所以對于OP來說,我相信這樣的事情會更簡單。
if( $last_transaction_date->diffInDays() > 30 ) echo "more than 30 days"

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
假設(shè)您在 MySQL 和 Php 配置中具有相同的時(shí)區(qū)和日期格式。下面是可以完成您的工作的代碼片段:
$datetime1 = new DateTime('2020-06-15');
$datetime2 = new DateTime();
$interval = $datetime1->diff($datetime2);
$days_diff = intval($interval->format('%a'));
if($days_diff > 30 ){
//Do your stuffs
}
DateTime 是處理時(shí)區(qū)和夏令時(shí)的更好方法。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以按如下方式使用 Carbon:
if (30 - ((new \Carbon\Carbon($last_transaction_date, 'UTC'))->diffInDays()) < 0) { echo "The date is older than 30 days"; }
或者,如果您只想檢查是否是一天的開始,那么使用 Carbon 進(jìn)行檢查相當(dāng)容易endOfDay()
:
if( $last_transaction_date->endOfDay->diffInDays() > 30 ){ echo "older than 30 days"; }
- 3 回答
- 0 關(guān)注
- 176 瀏覽
添加回答
舉報(bào)