繁体   English   中英

Laravel 在 where 子句中更改日期格式以匹配 Carbon::now()

[英]Laravel change date format in where clause to match Carbon::now()

我需要根据未来发生的日期和
条目包含日期格式:

12/30/17

我正在尝试格式化日期并与 Carbon::now() 时间戳进行比较,但没有运气。

$now = \Carbon\Carbon::now();

$bookings = DB::table('booking')
    ->select('booking.*')
    ->where('booking.uid', '=', Auth::id())
    ->where(DB::raw("(DATE_FORMAT(booking.date,'%Y-%m-%d 00:00:00'))"), ">=", $now)
    ->get();

您需要使用STR_TO_DATE来转换字符串。

$bookings = DB::table('booking')
    ->select('booking.*')
    ->where('booking.uid', '=', Auth::id())
    ->where(DB::raw("(STR_TO_DATE(booking.date,'%m/%d/%y'))"), ">=", $now)
    ->get();

STR_TO_DATE将转变12/30/172017-12-30

我不认为你真的需要检查日期格式。 此外,您在查询中有一些多余的东西。 只需这样做:

Booking::where('uid', auth()->id())->where('date', '>=', now())->get();

如果同一列中某些行的日期格式确实不同,则您确实需要解决此问题,而不是为此进行一些肮脏的修复。

$bookings = DB::table('booking')
    ->select('booking.*')
    ->where('booking.uid', '=', Auth::id())
    ->where(DB::raw("(DATE_FORMAT(booking.date,'%Y-%m-%d'))"), ">=", $now)
    ->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM