根据星期和年份过滤日期条目

时间:2020-01-28 19:39:47

标签: javascript php mysql laravel

我制作了一个概述页面,该页面显示了某个Web应用程序中的所有班次(如图所示)。

enter image description here

如图所示,我已经在视觉上进行了两个输入,用户可以在其中指定发生轮换的年份和星期。但是,我的Shift表当前由DateTime格式的开始时间和结束时间组成,例如2020-01-29 15:00:00。

以这种方式过滤这些条目的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

尝试此SQL查询:

SELECT *
FROM your_table
WHERE YEAR(CREATED_DATE) = 2020 AND WEEK(CREATED_DATE) = 5;

答案 1 :(得分:1)

您可以使用sql原始查询来过滤带有年份和星期编号的结果。 只需在服务器上使用过滤器参数(年,周号)发送正确的ajax请求即可 例如:如果用户输入2020年和第34周。

$data = YourModel::query()
    ->where(...)
    ->whereRaw('YEAR(created_at) = ?', [$request->year])
    ->whereRaw('DAYOFYEAR(created_at) BETWEEN ? AND ?', [7 * ($request->weeknumber - 1), 7 *  $request->weeknumber])
    ->get();

希望这对您有帮助

相关问题