我试图用Yii编写一个验证规则,但无法将日期与工作进行比较。如果End
不超过Start
30天,则查找呈现错误消息。
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/