Laravel日期时间条件无法正常工作

xnifntxz  于 2023-02-05  发布在  其他
关注(0)|答案(1)|浏览(211)

我有两列在我的报价表如下,我想获取这些报价的记录,这是目前有效:
| 报价开始日期|报价结束日期|
| - ------|- ------|
| 2022年10月24日10时57分|2023年10月24日10时57分|
下面是我的查询日期条件工作正常,但时间是给问题:

$now = Carbon::now();
$today = $now->toDateString();
$currentTime = $now->toTimeString();
$offers_data = Offer::whereRaw("offer_status=2 and offer_type=1 and is_special_offer=3")
->whereDate('offer_start_date','<=',$today)
->whereTime('offer_start_date','<=',$currentTime)
->whereDate('offer_end_date','>=',$today)
->whereTime('offer_end_date','>=',$currentTime)    
->limit(10)      
->get();

原因是什么?

lsmepo6l

lsmepo6l1#

一起使用whereDatewhereTime可能不会像您想象的那样工作。
相反,尝试只使用where()和Laravel将为您解决这个问题。

$now = Carbon::now();

$offers_data = Offer::whereRaw("offer_status=2 and offer_type=1 and is_special_offer=3")
    ->where('offer_start_date', '<=', $now)
    ->where('offer_end_date', '>=', $now)    
    ->limit(10)      
    ->get();

相关问题