在Laravel中添加时间查询

时间:2017-05-12 16:30:55

标签: php mysql laravel laravel-4 laravel-query-builder

我有一个查询根据今天的日期获取记录。我的问题是我需要今天的日期和时间,而不仅仅是日期。我希望所有记录的开始日期和时间都是今天上午9:30而不是上午12点。

我使用$today作为当前日期时间。每次用户加载页面时,都会比较当前日期时间以查看它是否在注册期限内

   $today = new DateTime('today');

   $programs = ScheduledProgram::where('registration_start_date', '<=', $today)
                                    ->where('end_date', '>=',  $today)
                                    ->get();

我的registration_start_date字段属于date类型,而不是datetime。但我的服务器已经充满了数据。

有没有办法可以将时间添加到查询中以获取registration_start_date + 9:30

或者我应该运行迁移来更改registration_start_date的字段类型?以及所有基础记录?

2 个答案:

答案 0 :(得分:0)

您可以使用自定义日期和时间范围创建变量,例如

 $programs = ScheduledProgram::where('registration_start_date', '>=', $today_start)
                                ->where('end_date', '<=',  $today_end)
                                ->get();

然后在查询中使用这些变量

{{1}}

请注意,我更改了&gt;和&lt;签署查询。

答案 1 :(得分:0)

你最好选择碳日期。请执行以下操作

use Carbon\Carbon

在你的方法中添加这个

$today = Carbon::today()->setTime(9,30,0);

我测试了它。有用。 希望这会有所帮助。