Php 如何使用Yi2在gridview行选项中使用mysql查询更改行颜色

Php 如何使用Yi2在gridview行选项中使用mysql查询更改行颜色,php,html,mysql,yii2,Php,Html,Mysql,Yii2,我想根据MySQL查询更改行颜色,其中过期日期大于当前日期且小于一个月内 'rowOptions'=>function($model) { if($model['expirydate'] >= '2018-08-10') { return ['class' => 'danger']; } }, 如何在行选项中使用以下条件突出显示即将到期的域行- $domains=Domains::find() ->Where('expirydate BETWEEN NO

我想根据MySQL查询更改行颜色,其中过期日期大于当前日期且小于一个月内

'rowOptions'=>function($model) {
  if($model['expirydate'] >= '2018-08-10') {
    return ['class' => 'danger'];
  }
},
如何在行选项中使用以下条件突出显示即将到期的域行-

$domains=Domains::find()
->Where('expirydate BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 1 MONTH)')
->andWhere(['or',['status'=> 'Active'],['status'=> 'Pending Transfer']])
->orderBy(['expirydate' => SORT_ASC])
->all();   

您需要在PHP中执行此操作,并且可以使用\DateTime类比较范围之间的日期

[
    'rowOptions' => function ($model, $key, $index, $grid) {
        $db_date = new DateTime($model->expirydate);

        $range_start = new DateTime();
        $range_end = new DateTime();
        $range_end->add(new DateInterval('P1M'));

        //if between range 
        if ($db_date >= $range_start && $db_date <= $range_end) {
            return[
                'class' => 'green'
            ];
        } else {
            return [
                'class' => 'red'
            ];
        }
    }
]