yii规则从数据库验证

时间:2017-02-07 10:56:41

标签: php mysql sql yii yii2

我有一张每个地方都有的地方表:

string[] formats = {"M/d/yyyy", "MM/dd/yyyy",                                    
                            "d/M/yyyy", "dd/MM/yyyy", 
                            "yyyy/M/d", "yyyy/MM/dd",
                            "M-d-yyyy", "MM-dd-yyyy",                                    
                            "d-M-yyyy", "dd-MM-yyyy", 
                            "yyyy-M-d", "yyyy-MM-dd",
                            "M.d.yyyy", "MM.dd.yyyy",                                    
                            "d.M.yyyy", "dd.MM.yyyy", 
                            "yyyy.M.d", "yyyy.MM.dd",
                            "M,d,yyyy", "MM,dd,yyyy",                                    
                            "d,M,yyyy", "dd,MM,yyyy", 
                            "yyyy,M,d", "yyyy,MM,dd",
                            "M d yyyy", "MM dd yyyy",                                    
                            "d M yyyy", "dd MM yyyy", 
                            "yyyy M d", "yyyy MM dd"
                           };

        DateTime dateValue;

        foreach (string dateStringFormat in formats)
        {
            if (DateTime.TryParseExact(sqlDateTime, dateStringFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue))
        }

用户可以在某个地方预约,他需要输入他想要的时间。我想验证时间是否在工作开始和工作结束之间。

我是var x=dateValue.ToString("yyyy-MM-dd"); // or any other format 的新手,我可以在控制器中轻松完成,但我想要最好的做法。我可以在ActiveRecord中加入规则,还是有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用几个比较规则

['fromDate', 'compare', 'your_date_attribute' => 'toDate', 'operator' => '<', 
             'enableClientValidation' => false],
['toDate', 'compare', 'your_date_attribute' => 'toDate', 'operator' => '>', 
             'enableClientValidation' => false],

请参阅此内容以获取一些建议http://www.yiiframework.com/doc-2.0/guide-tutorial-core-validators.html