Validation Yii2日期比较验证

Validation Yii2日期比较验证,validation,date,yii2,compare-attribute,Validation,Date,Yii2,Compare Attribute,我有下面这样的模型规则(),但它不起作用。它总是显示错误消息 public function rules() { return [ [['start_date','end_date'], 'date', 'format' => 'php:F d Y'], ['start_date','compare','compareAttribute'=>'end_date','operator'=>'<'], ['end_dat

我有下面这样的模型规则(),但它不起作用。它总是显示错误消息

public function rules()
{
    return [
        [['start_date','end_date'], 'date', 'format' => 'php:F d Y'],
        ['start_date','compare','compareAttribute'=>'end_date','operator'=>'<'],
        ['end_date','compare','compareAttribute'=>'start_date','operator'=>'>'],
    ];
}
公共功能规则()
{
返回[
[['开始日期','结束日期'],'日期','格式'=>'php:fdy'],
['start_date'、'compare'、'compareAttribute'=>'end_date'、'operator'=>'',
];
}
公共功能规则()
{
返回[
[['开始日期','结束日期'],'日期','格式'=>'php:fdy'],
[“开始日期”,“生效日期”],
];
}
公共函数validateDates(){
if(strotime($this->end\u date)start\u date)){
$this->addError('开始日期','请给出正确的开始和结束日期');
$this->addError('结束日期','请给出正确的开始和结束日期');
}
}

您应该编写客户端验证

您可以对此问题使用默认比较验证

['fromDate', 'date', 'timestampAttribute' => 'fromDate'],
['toDate', 'date','timestampAttribute' => 'toDate'],
['fromDate', 'compare', 'compareAttribute'=> 'toDate', 'operator' => '<', 
'enableClientValidation' =>false],
['fromDate','date','timestampAttribute'=>'fromDate'],
['toDate','date','timestampAttribute'=>'toDate'],

['fromDate','compare','compareAttribute'=>'toDate','operator'=>'如何使用此格式比较这些日期?…yii2 validate类应该解析日期。我是如何解决它的。两个属性只需要一个比较属性。不需要将
开始日期
结束日期
进行比较,然后在相反的顺序。还有另一种方法:很好的解决方案,但需要记住“格式”。此外,如果您对每种格式都使用一致的反向日期格式,例如'format'=>'php:Y-m-d',则不需要指定timestampAttribute。如果指定timestampAttribute,默认行为是显示错误,但将输入的日期值替换为其timestampAttribute,这对用户来说不是很友好。
['fromDate', 'date', 'timestampAttribute' => 'fromDate'],
['toDate', 'date','timestampAttribute' => 'toDate'],
['fromDate', 'compare', 'compareAttribute'=> 'toDate', 'operator' => '<', 
'enableClientValidation' =>false],