如何在Laravel中查看日期格式?

时间:2015-08-12 10:57:59

标签: php mysql laravel

我想在laravel中检查当前日期是否相同。

$sales = DB::table('c_sales_detail')
 ->where('c_sales_detail.package_id',"=",'$package->code')
 ->where(DATE_FORMAT('c_sales_detail.created_at', '%W'), "=", "Wednesday")
 ->count();

但是得到了以下错误。请帮我解决这个问题。

  

Error :: date_format()期望参数1为DateTime,给定字符串

3 个答案:

答案 0 :(得分:1)

if(is.peek() == '\n')

您是否尝试在此处调用PHP函数->where(DATE_FORMAT('c_sales_detail.created_at', '%W'), "=", "Wednesday") ,或者调用MySQL函数date_format ...?

现在你正在调用PHP函数。如果你想调用MySQL函数,那么它必须是你传递给DATE_FORMAT的字符串的一部分,而不是围绕的字符串值。 where()应该是一个列名 - 那么现在,它只是一个字符串值。

我想这就是你真正想要的东西:

c_sales_detail.created_at

修改:根据Joel的评论,将->whereRaw("DATE_FORMAT(c_sales_detail.created_at, '%W') = 'Wednesday'") 替换为->where()

答案 1 :(得分:0)

不确定但请尝试此代码, 替换,

->where(DATE_FORMAT('c_sales_detail.created_at', '%W'), "=", "Wednesday")

使用,

->where(DATE_FORMAT(strtotime('c_sales_detail.created_at'), '%W'), "=", "Wednesday")

答案 2 :(得分:0)

您也可以尝试使用此代码 -

$query = DB::table('c_sales_detail');
$query->whereRaw("DATE_FORMAT(created_at,'%W') = 'Tuesday'");
$result = $query->get();