Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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_Eloquent_Php Carbon - Fatal编程技术网

Php 这两者之间在拉雷维尔与碳不起作用

Php 这两者之间在拉雷维尔与碳不起作用,php,laravel,eloquent,php-carbon,Php,Laravel,Eloquent,Php Carbon,我想查询2016年1月10日创建的用户。因此,Laravel 5.1中的代码如下(创建的时间戳为): 上面的代码工作正常。 但这种正常的方式并不: User::whereBetween('created_at', [$day1->startOfDay(), $day1->endOfDay()])->get(); 我不认为有什么区别。你不需要一个中间人: $myDate = new Carbon('2016-01-10'); User::whereDate('created_a

我想查询2016年1月10日创建的用户。因此,Laravel 5.1中的代码如下(创建的时间戳为):

上面的代码工作正常。 但这种正常的方式并不:

User::whereBetween('created_at', [$day1->startOfDay(), $day1->endOfDay()])->get();

我不认为有什么区别。

你不需要一个中间人:

$myDate = new Carbon('2016-01-10');
User::whereDate('created_at', '=', $myDate->format('Y-m-d'))->get();

你可以用像他的一样的东西

\Illuminate\Database\Query\Builder Line 902

User::whereDate('created_at', '=', new Carbon('2016-01-10'))->get();
而且没有碳

User::where( DB::raw('DATE(created_at)'), '=', '2016-01-10')->get();
OR
$d = new Carbon('2016-01-10');
User::whereRaw('DATE(created_at) = ?', [$d])->get();

谢谢你的回复。但是按照你的代码,我得到了这样的结果:“Illumb\Database\Query\Builder::whereDate()”缺少参数3。它应该是
whereDate('created_at','=',$myDate)
,第二个参数必须是运算符,在这种情况下是
=
。没有更多错误。用我的第一个方法,它将匹配50个记录。但和你的不一样。那么我该如何解决这个问题呢?在列中创建的_是timestamp。感谢@Schellingerht,使用您的格式化代码,它可以工作。所以,你们能解释一下为什么我的第一个代码运行良好,但第二个代码却失败了吗?谢谢你们的回复。我想用碳。但与你的代码,没有匹配,即使我有近50个记录的日期。对于我的第一个代码,它可以工作,而另一个则不行。如果列的类型为DATETIME,则使用日期等于碳实例的第一个条件将不起作用。对于第二种方法,有一个helper方法
whereDate
,它做同样的事情,但避免使用@Schellingerht在回答中指出的
DB::raw
。是的。该列是时间戳,因此不适用于第一种方式。User::where('created_at','=',(new Carbon('2016-01-10'))->format('Y-m-d'))->get();
User::where( DB::raw('DATE(created_at)'), '=', '2016-01-10')->get();
OR
$d = new Carbon('2016-01-10');
User::whereRaw('DATE(created_at) = ?', [$d])->get();