gpt4 book ai didi

php - Laravel Eloquent - created_at 是 X 天前的位置

转载 作者:行者123 更新时间:2023-12-03 23:05:03 25 4
gpt4 key购买 nike

我有一系列的日子要检查以 Laravel Spark 结束的试验:

$trialIntervals = [10, 5, 3, 1, 0];

我获取所有团队,然后使用 diffInDays 检查他们的 trial_ends_at 日期是否为间隔之一:
$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

目的是 where 将只显示具有 X 天前 created_at 日期的行。

最佳答案

使用 WhereRaw

->whereRaw('DATEDIFF(CURDATE(),STR_TO_DATE(created_at, '%Y-%m-%d'))'), $daysTillTrialEnds)

关于php - Laravel Eloquent - created_at 是 X 天前的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46793741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com