gpt4 book ai didi

php - whereBetween 与日期不起作用

转载 作者:行者123 更新时间:2023-11-29 10:13:17 27 4
gpt4 key购买 nike

我正在尝试在 Laravel 中根据年龄进行搜索查询。但是,当我尝试在两个日期之间查询时,我没有得到任何结果。我的代码如下所示:

    $today = Carbon::today();
$age_from = $today->subYears($request->age_from)->toDateString();
$age_to = $today->subYears($request->age_to)->toDateString();

$users->whereBetween('birthday', [$age_from, $age_to]);

//Get matching users.
$users = $users->Paginate(self::paginate);

当我使用 mySql() 查看时,查询看起来是正确的,但由于某种原因,我没有得到任何结果。也许语法错误? toDateString的使用错误以及MySQL的日期比较?

编辑:$age_from 的输出是:

Carbon @959558400 {#245 ▼
date: 2000-05-29 00:00:00.0 UTC (+00:00)
}

$age_to 的输出是:

Carbon @-302745600 {#245 ▼
date: 1960-05-29 00:00:00.0 UTC (+00:00)
}

最佳答案

原因是您对 $today 对象进行了两次突变。如果您检查,$age_from 与第 3 行之后的 $age_to 具有相同的值。

你应该写:

$today = Carbon::today();
$age_from = $today->copy()->subYears($request->age_from);
$age_to = $today->copy()->subYears($request->age_to);

或者简单地

$age_from = Carbon::today()->subYears($request->age_from);
$age_to = Carbon::today()->subYears($request->age_to);

关于php - whereBetween 与日期不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50583998/

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