Php 在Laravel中添加时间到日期查询

Php 在Laravel中添加时间到日期查询,php,mysql,laravel,laravel-4,laravel-query-builder,Php,Mysql,Laravel,Laravel 4,Laravel Query Builder,我有一个查询,它根据今天的日期获取记录。我的问题是,我需要的是今天的日期和时间,而不仅仅是日期。我想获取所有记录,这些记录的开始日期和时间是今天上午9:30,而不是12:00 我使用$today作为当前日期时间。每次用户加载页面时,都会比较当前日期时间,看它是否在注册期内 $today = new DateTime('today'); $programs = ScheduledProgram::where('registration_start_date', '<=', $t

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

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

   $today = new DateTime('today');

   $programs = ScheduledProgram::where('registration_start_date', '<=', $today)
                                    ->where('end_date', '>=',  $today)
                                    ->get();
我的注册\开始\日期字段是日期类型,而不是日期时间。但是我的服务器已经充满了数据

是否有办法将时间添加到查询中,以获得注册\u开始\u日期+9:30


或者我应该运行迁移来更改注册开始日期的字段类型吗?以及所有的底层记录?

您可以为今天创建具有自定义日期和时间范围的变量,例如

$today_start = date('Y-m-d').' 9:30:00';
$today_end = date('Y-m-d').' 18:30:00';
然后在查询中使用这些变量

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

请注意,我更改了>和最好选择碳日期。执行以下操作

use Carbon\Carbon
在您的方法中添加以下内容

$today = Carbon::today()->setTime(9,30,0);
我测试过了。它起作用了。
希望这能有所帮助。

我们对$today变量的想法有所不同。我使用$today作为当前日期时间。每次用户加载页面时,都会比较当前日期时间,看它是否在注册期内。对不起,我想你可能是对的…我会尝试一下,然后再报告。我们对开始时间的想法不同。这和你描述的不一样。我想我需要从今天的美元中减去9.5小时。代码的其余部分可以保持不变。