Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取给定日期字段的月份和年份_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 获取给定日期字段的月份和年份

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])))

我有一个字段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])))
    ->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')