CakePHP 3:检查日期大于今天

Anu*_*TBE 2 datetime cakephp cakephp-3.0

我有一个valid_till类型的属性DATE.

现在我想要做的是valid_till从今天开始比较.

$couponCheck = $this->Coupons->find('all', [
    'conditions' => [
       'coupon_code' => $couponCode
     ]
   ]);
   if ($couponCheck->count() === 1) {
     $coupon = $couponCheck->first();
     if ($coupon->valid_till >= isToday()) {
        echo 'Coupon is Valid';
     } else {
        echo 'Coupon is Expired';
     }
   } else {
      echo 'This is not a valid coupon code';
   }
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我怎么能这样做?

ndm*_*ndm 7

valid_till应该已经是一个日期/时间对象,这取决于你的CakePHP版本和配置,默认情况下要么\Cake\I18n\Time,\Cake\I18n\Date\Cake\I18n\FrozenDate由碳或Chronos的支持.

如果你在CakePHP> = 3.2,那么你应该有一个\Cake\I18n\Date或一个\Cake\I18n\FrozenDate对象,你应该能够简单地检查有效性isPast(),就像

if (!$coupon->valid_till->isPast()) {
    echo 'Coupon is Valid';
} else {
    echo 'Coupon is Expired';
}
Run Code Online (Sandbox Code Playgroud)

对于早期版本,您今天也必须检查,例如

!$coupon->valid_till->isPast() || $coupon->valid_till->isToday()
Run Code Online (Sandbox Code Playgroud)

也可以看看