Php Laravel 5.1-检查日期是否过期

Php Laravel 5.1-检查日期是否过期,php,laravel,laravel-5.1,Php,Laravel,Laravel 5.1,我在做电子商务,我创造了: -具有所有产品属性(价格、id、数量、类别等)的会话“购物车” -CouponController.php Model.php 我的问题 我想: 如果代码优惠券已过期,请咨询我的CoupController 如果过期,返回简单消息“优惠券无效” 如果优惠券代码存在于我的DB中且未过期,我需要创建一个带有优惠券价格值的新变量,例如“$折扣=优惠券->价格”,这样我就可以将我的折扣价格传递到我的结帐视图 我该怎么做 谢谢你的帮助!(我读了一些关于碳的东西,但我不太明白)如

我在做电子商务,我创造了:

-具有所有产品属性(价格、id、数量、类别等)的会话“购物车”

-CouponController.php

Model.php

我的问题

我想:

  • 如果代码优惠券已过期,请咨询我的CoupController
  • 如果过期,返回简单消息“优惠券无效”
  • 如果优惠券代码存在于我的DB中且未过期,我需要创建一个带有优惠券价格值的新变量,例如“$折扣=优惠券->价格”,这样我就可以将我的折扣价格传递到我的结帐视图
  • 我该怎么做


    谢谢你的帮助!(我读了一些关于碳的东西,但我不太明白)

    如果
    $coupon->expire\u date
    不是
    碳的实例,那么就把它做成(
    新碳(
    coupon->expire\u date)
    ,然后简单地比较这两个对象,就好像它们是数字一样

    例如(假设
    $coupon->expire\u date
    Carbon
    的实例:

    if ($coupon->expire_date >= $my_time) {
      // ok
    } else {
      // error, coupon expired
    }
    
    Carbon对于各种比较、计算差异等都非常方便。您可以找到大量的示例。

    使用它可以使
    过期日期
    字段自动成为Carbon实例

    class Coupon extends Model
    {
        /**
         * The attributes that should be mutated to dates.
         *
         * @var array
         */
        protected $dates = ['expire_date'];
    }
    
    所以在那之后,我想你只需要检查优惠券的到期日是否是未来的日期

    if (!empty($coupon) && $coupon->expire_date->isFuture() ) {
        // valid coupon
    }
    else{
        return redirect()->back()->withErrors(['coupon' => 'Coupon is not valid']);
    }
    

    我需要在之前安装carbon?我需要插入到我的composer中?或者我可以插入类carbon而不安装任何东西?谢谢你的帮助!你已经有carbon了,它随laravel一起提供,你已经在使用它了,就像你在
    $mytime
    variable中使用它一样。我正在尝试,但我得到一个错误:carbon.php第42行中的InvalidArgumentException5:发现意外数据。发现意外数据。数据丢失是的,正确的类别是使用碳/碳;现在它工作了!非常感谢!
    class Coupon extends Model
    {
        /**
         * The attributes that should be mutated to dates.
         *
         * @var array
         */
        protected $dates = ['expire_date'];
    }
    
    if (!empty($coupon) && $coupon->expire_date->isFuture() ) {
        // valid coupon
    }
    else{
        return redirect()->back()->withErrors(['coupon' => 'Coupon is not valid']);
    }
    
        $now = Carbon::now();
        $startDate = Carbon::parse($yourModelObject['created_at'])->format('d.m.Y h:m:sa');
        $endDate = Carbon::parse($yourModelObject['created_at'])->addMinutes(720)->format('d.m.Y h:m:sa');
    
        if ($now->between($startDate, $endDate)) {
            return 'Date is Active';
        } else {
            return 'Date is Expired';
        }