私はYiiに妥当性検査のルールを書こうとしていますが、仕事と比較して日付を得ることはできません。 End
がStart
の30日を超えない場合、エラーメッセージを表示するようにします。日付と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 DBを使用していますし、開始と終了はdate
形式です
EDIT: 私は今でもページが表示されません
この
を試してみましたが、下の解答で入力を考えます。$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!');
有効にするにはstrtotimeを使用するように注意してくださいユーザー入力は[strtotime PHP Manual](http://php.net/manual/en/function.strtotime.php)を参照してください。タイムスタンプの有効範囲は、通常、金曜日、1901年12月13日20:45:54 UTCからあなたがphp [Datetime](http://www.php.net/manual/en/class.datetime.php)を使用できるのであれば、2038年1月19日03:14:07 UTC。 – Henesnarfel
理由と理由を説明するマインド? – enfield