$datenow = new DateTime();
$dn = $datenow -> format("Y-m-d"); //2014-12-02
$yesterday = $datenow -> sub(new DateInterval('P1D')) -> format("Y-m-d"); //2014-12-01
$yestertwo = $datenow -> sub(new DateInterval('P2D')) -> format("Y-m-d"); //2014-11-29
$tomorrow = $datenow -> add(new DateInterval('P1D')) -> format("Y-m-d"); //2014-11-30
$tomotwo = $datenow -> add(new DateInterval('P2D')) -> format("Y-m-d"); //2014-12-02
ここで何かが欠けていなければなりませんでした。日付の計算がずれているようです。
アップデート:
$datenow = new DateTime();
$dn = $datenow -> format("Y-m-d");
$yesterday = $datenow -> sub(new DateInterval('P1D')) -> format("Y-m-d");
$yestertwo = $datenow -> sub(new DateInterval('P1D')) -> format("Y-m-d");
$tomorrow = $datenow -> add(new DateInterval('P3D')) -> format("Y-m-d");
$tomotwo = $datenow -> add(new DateInterval('P1D')) -> format("Y-m-d");
これにより、正しい日付が出力されます。ただし、一見するとごちゃごちゃしていて読めないように見えます。解決策はありますか?