Yii2 DateTime模型验证格式问题

时间:2017-10-01 15:28:58

标签: php validation datetime model yii2

创建一个名为'的dateTime字段的模型,直到',名称并不重要,只是它是一个日期时间。 这是它在模型规则中的验证。

['until', 'datetime', 'format' => 'Y-m-d H:i:s'],

稍后我实例化模型并更新字段后,我收到验证错误。

$model->until = '2017-10-15 14:30:04';
$eventRepeat->validate();
$errors = $model->errors;

$ errors ['直到'] [0]将是' Until的格式无效。'

我没想到会出现这个错误。

2 个答案:

答案 0 :(得分:2)

与Yii2 Doc一样

  

format:要验证的值应该是的日期/时间格式   这可以是ICU手册中描述的日期时间模式。   或者,这可以是以php:为前缀的字符串,表示a   PHP Datetime类可以识别的格式。

http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html#date

尝试使用

['until', 'datetime', 'format' => 'php:Y-m-d H:i:s'],

答案 1 :(得分:0)

解决!

将格式设置为

  

php:Y-m-d H:i:s

并使用了格式化程序。

$model->until = Yii::$app
            ->formatter
            ->asDatetime(
                new DateTime('NOW + 2 weeks'),
                'php:Y-m-d H:i:s'
            );