首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >yii2中dd/mm/yyyy格式的数据验证

yii2中dd/mm/yyyy格式的数据验证
EN

Stack Overflow用户
提问于 2016-12-08 06:25:02
回答 3查看 3K关注 0票数 0

我希望验证日期字段仅接受(dd/mm/yyyy)格式,例如

代码语言:javascript
复制
(14/11/1993)

此外,如果月份是二月,它不应该接受第30天和第31天。请帮助任何人,我已经尝试了下面的模式,但它在Yii 2中不起作用。它显示了RegularExpressionValidator.php中的错误

代码语言:javascript
复制
[
    ['dateofbirth'], 
    'match', 
    'pattern' => '/^((([1-2][0-9])|([1-9]))/([2])/[0-9]{4})|((([1-2][0-9])|([1-9])|(3[0-1]))/((1[0-2])|([3-9])|([1]))/[0-9]{4})$/', 
    'message' =>'Invalid date'
],
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-08 07:39:30

try

(/^((01-9|12|301)(/)(013578|102))|((01-9|12)(/)(02))|((01-9|12|3)(/)(0469|11))(/)\d{4}$/)

(^((01-9|12|301)(/)(013578|102))|((01-9|12)(/)(02))|((01-9|12|3)(/)(0469|11))(/)\d{4}$)

票数 1
EN

Stack Overflow用户

发布于 2016-12-08 07:27:26

代码语言:javascript
复制
public function rules()
{
    return [
        ['dateofbirth', 'date', 'format' => 'dd/MM/yyyy'],
    ];
}

另一种方法是从这个答案那里采取的。

代码语言:javascript
复制
public function rules()
{
    return [
        ['dateofbirth', 'validateDateOfBirth'],
    ];
}

public function validateDateOfBirth($attribute)
{
    $dateTime = DateTime::createFromFormat('d/m/Y', $this->$attribute);
    $errors = DateTime::getLastErrors();
    if (!empty($errors['warning_count'])) {
        $this->addError($attribute, 'Invalid date');
    }
}
票数 3
EN

Stack Overflow用户

发布于 2016-12-08 08:38:55

那个对我很好

代码语言:javascript
复制
public function rules()
{
    return [
        ['dateofbirth', 'date', 'format' => 'php:Y-m-d'];
    ];
}

下面是关于那个YII2 DateValidator文档的更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41033077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档