Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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 Laravel获取一列中的日期小于或等于另一列中的日期7天的所有记录_Php_Mysql_Laravel_Eloquent - Fatal编程技术网

Php Laravel获取一列中的日期小于或等于另一列中的日期7天的所有记录

Php Laravel获取一列中的日期小于或等于另一列中的日期7天的所有记录,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我在一个表中有两个日期列,分别在创建时和遇到时。我想得到所有遇到的行比创建的行少1周的行。我如何在不做任何循环的情况下进行呢 这是一个例子 id | encountered_at | created_at 1 | 2020-04-17 | 2020-04-23 2 | 2020-04-17 | 2020-04-24 3 | 2020-04-17 | 2020-11-29 前两条记录应该显示出来。我想这是SQL中的一个关键点,如何用雄辩的语言实现这一

我在一个表中有两个日期列,分别在创建时和遇到时。我想得到所有遇到的行比创建的行少1周的行。我如何在不做任何循环的情况下进行呢

这是一个例子

id | encountered_at | created_at   
1  | 2020-04-17     | 2020-04-23  
2  | 2020-04-17     | 2020-04-24   
3  | 2020-04-17     | 2020-11-29
前两条记录应该显示出来。我想这是SQL中的一个关键点,如何用雄辩的语言实现这一点? …

您可以使用

请注意,这里的结果将包含差异小于或等于7天的行。。。如果您希望它仅为7天,通常可以省略“,您希望从表中选择*,其中在1周内遇到和创建的差异-因此您希望计算差异,然后将其测试为不到一周。我建议使用以下mysql文档页面:

whereBetween方法验证列的值是否在两个值之间

$from = date('2020-01-01');
$to = date('2020-05-02');
Model::whereBetween('date', [$from, $to])->get();
您可以使用carbon对象检查两个日期之间的日期。您可以获取当前日期,然后获取日期之间的开始日期和结束日期,然后返回true,否则返回false

$startDate = \Carbon\Carbon::createFromFormat('Y-m-d','2020-10-01');
$endDate = \Carbon\Carbon::createFromFormat('Y-m-d','2020-10-30');
$check = \Carbon\Carbon::now()->between($startDate,$endDate);
dd($check); // return true or false

到目前为止你都尝试了什么?欢迎来到so。请看:谢谢你的资源。
$startDate = \Carbon\Carbon::createFromFormat('Y-m-d','2020-10-01');
$endDate = \Carbon\Carbon::createFromFormat('Y-m-d','2020-10-30');
$check = \Carbon\Carbon::now()->between($startDate,$endDate);
dd($check); // return true or false