我试图用Yii编写一个验证规则,但无法将日期与工作进行比较。如果End不超过Start30天,则查找呈现错误消息。

public function checkDate($attribute,$params)
    {
        $duration = strtotime(date('Y-m-d', strtotime($this->Start)) . ' +30 days');
        if ($this->End < $duration)
                $this->addError('End','30 days or more!');
    }

这样,每个输入都会产生错误消息。我使用的是MySql数据库,Start和End都是date格式
编辑:
根据下面的答案,我已经试过了
这甚至无法呈现页面。
    $startDate = $this->Start;
    $endDate = $this->End;
    $interval = $startDate->diff($endDate);
    if ($interval < 30)
                $this->addError('End','30 days or more!');


这会给错误100%的时间。
$duration = date('Y-m-d', strtotime($this->Start . '+ 30 days'));
if ($this->End < $duration)
    $this->addError('End','30 days or more!');

最佳答案

如果您要将$duration$this->END进行比较(这是从数据库中直接出来的),则需要在检查date('Y-m-d', $duration)之前放置$this->END
你要去一个苹果和橘子的地方
改变
$duration=strotime(日期('Y-m-d',strotime($this->Start))。'+30天);

$duration=日期('Y-m-d',strotime($this->START.'+30天);
你的剧本应该行得通
希望这有帮助

关于php - 日期加上30天验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9165318/

10-12 19:19