我正在使用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'],
],
]);
答案 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");
}
}
虽然它对我来说非常合适,但如果有人有更合适的解决方案,请提出建议。