Php 获取给定日期字段的月份和年份
我有一个字段date\u start字段,它是一个日期数据类型。我想获取字段日期的月份和年份,并检查该月份是否在给定的日期月份“2021-02-01”中Php 获取给定日期字段的月份和年份,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有一个字段date\u start字段,它是一个日期数据类型。我想获取字段日期的月份和年份,并检查该月份是否在给定的日期月份“2021-02-01”中 $meeting_ids=DB::table('meeting_dump') ->Where(DB::raw(date('m-y',strtotime('meeting_dump.date_start'))),'=',date("m-y", strtotime($dates_between[0])))
$meeting_ids=DB::table('meeting_dump')
->Where(DB::raw(date('m-y',strtotime('meeting_dump.date_start'))),'=',date("m-y", strtotime($dates_between[0])))
->pluck('meeting_dump.parent_id')
->toArray();
给定日期为
2021-02-01
,会议开始日期为2021-02-01
,2021-01-05
需要为2021-02-01
选择父id,
(new Carbon('2021-02-01'))->format("m-y") //this will yield 02-21
您可以对日期字段执行同样的操作。对于您的问题,我建议从输入日期创建月开始和月结束的日期范围,而不是动态格式化日期
$date = \Carbon\Carbon::parse("2021-02-01");
$start = $date->startOfMonth()->format('Y-m-d H:i:s');
$end = $date->endOfMonth()->format('Y-m-d H:i:s');
在查询生成器的“在过滤器之间使用”中,这种方法的好处是,查询保持不变,这意味着如果在该列上添加了索引,它将使用该索引,但如果在日期列上执行格式设置,则索引将被忽略
$meeting_ids= DB::table('meeting_dump')
->whereBetween('date_start', [$start, $end])
->pluck('parent_id')
->toArray();
对于2021年2月,请使用->whereMonth('date\u start','=','02')->whereYear('start\u date','=','2021')