我有,我想覈對在Laravel星火結束審判日的數組:Laravel雄辯 - 其中created_at是在X天前
$trialIntervals = [10, 5, 3, 1, 0];
我取所有的球隊,然後檢查他們的trial_ends_at日起使用間隔diffInDays:
$daysTillTrialEnds = Carbon::parse($team->trial_ends_at)->diffInDays(Carbon::now());
然後我檢查,如果這個值已經是現有結果的數據庫和間隔:
if (in_array($daysTillTrialEnds, $trialIntervals) && !TrialEndingNotification::where('team_id', $team->id)->where('days_notified_at', $daysTillTrialEnds)->count()) {
// not yet been added to db
}
我有一個名爲'days_notified_at'的字段,如果我已經添加了行並通知了客戶,我正在使用該檢查。但是,該字段不會再次使用,我寧願引用created_at日期並刪除該字段。
我的問題是如何基本上做到這一點:
->where(Carbon::parse('created_at')->diffInDays(Carbon::now()), $daysTillTrialEnds)
沒有收到此錯誤:
DateTime::__construct(): Failed to parse time string (created_at) at position 0 (c): The timezone could not be found in the database
的目的是,在那裏將只顯示有一個是X一個created_at日期行幾天前。
工作,也許是因爲在那裏功能「 - >其中()」的第一個參數是字段名,所以碳::解析爲在還沒有感覺到 – LorenzoBerti
Laravel第一參數有一個'whereDate()'函數,在這種情況下可能會幫助你很多。 –