Как сделать range validator для yii2?
Для начала почитать офф. доки: www.yiiframework.com/doc-2.0/guide-tutorial-core-v...[ [ 'score' ], 'compare', 'compareValue' => 1, 'operator' => '>=' ],
[ [ 'score' ], 'compare', 'compareValue' => 100, 'operator' => '<=' ],
# или
[ [ 'score' ], 'in', 'range' => [ 1, ..., 100 ] ],
# или
[ [ 'score' ], function ( $attribute, $params ) {
    if ( !( $this->$attribute >= 1 && $this->$attribute <= 100 ) ) {
        # Ошибка!
    } 
} ],
Пример "in range" валидатора для дат:public function rules()
    {
        return [
            [['date'], 'required'],
            [['date'], 'safe'],
            [['date'],
                'filter',
                'filter' => function($value){
                    return \Yii::$app->formatter->asDate($value, 'yyyy-MM-dd');
                }
            ],
            [
                ['date'],
                'date',
                'format' => 'yyyy-MM-dd'
            ],
            [
                ['date'],
                'in',
                'range' => function ($model, $attribute) {

                    $start = \Yii::$app->formatter->asTimestamp(!empty($model->oldAttributes[$attribute]) ?
                                $model->oldAttributes[$attribute] :
                                $this->$attribute);
                    $start += 24 * 60 * 60;

                    $stop = \Yii::$app->formatter->asTimestamp($model->relatedModel->end_date);

                    $dates = [];
                    while ($start <= $stop) {
                        $dates[] = \Yii::$app->formatter->asDate($start, 'MM/dd/yyyy');
                        $start += (24 * 60 * 60);
                    }
                    return $dates;
                },
                'on' => [
                    self::SCENARIO_DEFAULT,
                ],
                'skipOnEmpty' => false,
                'skipOnError' => false
            ],
      ];
}
P.S.
Валидатор готовит массив дат в американском формате, т.к. именно он нужен для выбора даты из \yii\jui\DatePicker<?php
            $form = ActiveForm::begin();
            $model->date = \Yii::$app->formatter->asDate($model->date, 'MM/dd/yyyy');
?>

<?= $form->field($model, 'date')
                ->label('Date')
                ->widget(DatePicker::className(), [
                    'dateFormat' => 'MM/dd/yyyy',
        ])
        ->textInput([
              'class'    => 'form-control',
        ]);
?>