2 amigos/yii2-date-picker-widget年度验证

时间:2016-09-14 05:33:06

标签: yii2 yii2-advanced-app

我正在使用2 amigos/yii2-date-picker-widget。选择日期后,用户可以编辑可能无效的年份,如10/30/0233。 (M / d / Y)

我想限制用户输入无效年份,或仅允许特定年份范围之间的日期。没有使日期字段只读。我怎样才能做到这一点。

       echo $form->field($model, 'date')->widget(DatePicker::className(), [
                                    'addon' => '<i class="fa fa-calendar" aria-hidden="true"></i>',
                                    'class' => 'form-control',
                                    'clientOptions' => [
                                        'autoclose' => true,
                                        'format' => Yii::$app->params['dateFormat'],
                                    ],

                                ]);

1 个答案:

答案 0 :(得分:0)

我使用自定义验证器解决了它,如下所示

为日期添加规则,如下所示

    ['my_date', 'validYear'], // custom validator to check year range

然后按如下方式定义自定义规则

public function validYear($attribute, $params) {

        $date = DateTime::createFromFormat("m/d/Y", $this->my_date);
        $year = $date->format("Y");
        $year_range = range(date('Y'), date('Y')+20, 1);
        if(!empty($year) && !in_array($year, $year_range)){

            $this->addError($attribute,"Please select valid date");
        }
    }

虽然它对我来说非常合适,但如果有人有更合适的解决方案,请提出建议。