繁体   English   中英

雄辩的日期在拉拉韦尔之间

[英]Eloquent where between dates in Laravel

我在雄辩的查询中遇到麻烦。 我的模型的结构是:

优惠券(获得预订折扣):

  • period_start(优惠券在某些特定时期内有效)
  • period_end(例如,此结束日期:优惠券在2018-02-01至2018-03-03之间进行预订时有效
  • booking_start(完成预订的时间)
  • booking_end(例如,您只能在2018年1月15日至2018年1月30日之间预订,以使优惠券有效)

码:

$coupon = Coupon::where('period_start', '<=', $request->get('from_date'))
        ->where('period_end', '<=', $request->get('to_date'))
        ->where('booking_start', '<=', now()->format('Y-m-d'))
        ->where('booking_end', '>=', now()->format('Y-m-d'))
        ->first();

在订单字段中,人们从日期选择器中选择两个日期,那就是request()的位置。

这应该可以,但是我没有任何结果...

怎么样使用dateBetween?

$start = Carbon::parse($request->start)->startOfDay();  //2016-09-29 00:00:00.000000
$end = Carbon::parse($request->end)->endOfDay(); //2016-09-29 23:59:59.000000
$clicks->dateBetween($start, $end);

https://laracasts.com/discuss/channels/eloquent/daterange-with-wherebetween

您应该重新格式化查询部分之前从日期选择器获得的日期,像这样。

$date=date('Y-m-d', strtotime(str_replace('-', '/', $request->to_date)));

暂无
暂无

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

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