首页 > 解决方案 > 如何根据laravel中所有星期的当前月份检索所有数据?

问题描述

我需要根据周检索所有记录。

数据可能是这样的:

array(
numberofweaks:5
weak_1 = [2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42]
weak_2 = [2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42]
weak_3 = [2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42]
weak_4 = [2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42]
weak_5 = [2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42, 2019-11-21 22:00:42]
)

尝试了很多参考,但没有一个有效。

试过这个,不工作:

$monthOfWeaks = DB::table("UserDetails")
    ->whereBetween('creationdate', [Carbon::now()->subWeek(4)->format("Y-m-d H:i:s"), Carbon::now()])
    ->get();

请分享您的参考!!

标签: phpsqllaravel

解决方案


首先,如果你说的“弱”是指 7 天的时间段,那么这个词实际上是“周”。

然后,您正在使用subWeek(4)Carbon 上的方法。此方法不接收任何参数(因为它应该只有一周),如果您想减去很多周,请subWeeks($int)改用。检查文档

Carbon::now()->subWeeks(4);

最后,您不需要格式化日期,只需传递实例即可。所以你的查询应该是这样的:

$data = DB::table("UserDetails")
    ->whereBetween('creationdate', [now()->subWeeks(4), now()])
    ->get();

推荐阅读