私は次の日付を返します(月ごとの選択)。しかし、ユーザーが2月を選択すると、正しく動作しないことがわかりました。これは、日付を取得するために適用され、私のコードです:DateTime :: createFromFormatは、2017-02の形式では正常に動作しません
$dateSelect = @$_GET['datum'] ?: date('Y-m');
$date = DateTime::createFromFormat('Y-m', $dateSelect);
$prevdate = clone $date;
$date->modify('first day of next month');
$this->view->next_month = $date->format('m');
$this->view->next_year = $date->format('Y');
$prevdate->modify('first day of previous month');
$this->view->prev_month = $prevdate->format('m');
$this->view->prev_year = $prevdate->format('Y');
あなたがより速くそれをテストすることができますので、私は例を作っていますPHP Sandbox
ユーザーが日付2017-02
を選択した場合、それは、2017-03
として処理され、その間違っています。この例では、値を2017-01
に変更してみてください。正しく動作していることがわかります。私のコードのボタンはこれらの値で満たされているので、ユーザは手動でURLを変更することなくFebruary 2017
の前に行くことはできません。日時は現在日付に基づいて日付の行方不明d
一部を移植れるように
このデフォルトの動作を回避するために、これまでに
d
一部を強制する必要があります|'(パイプ文字): 'Ymの|' 'のDateTime :: createFromFormat(、 $ dateSelect); '。これにより、曜日と時間が0になります。利用可能な他のそのような文字については、createFromFormat docを参照してください。 – Zimmi