date_add
とdate_sub
を使用して日付に日数を加算したり減算したりしようとしていますが、奇妙な結果が出ます。私はこれが簡単な答えであると仮定しています。なぜPHPで十分なことを知っているのか分かりません。ここでPHP - 日数の加算と減算DateIntervalの奇妙なバグ
は私のコードです:
$y = new DateTime('2016-05-17');
$z2 = 7;
$tempy = $y;
$tempy->sub(new DateInterval('P' . $z2 . 'D'));
$startdate = date_format($tempy, "Y-m-d");
$y->add(new DateInterval('P' . $z2 . 'D'));
$enddate = date_format($y, "Y-m-d");
echo "Start: " . $startdate . " End: " . $enddate . "\r\n";
これが結果です:
Start: 2016-05-10 End: 2016-05-17
それは私は開始日のために一時的な変数$tempy
を使用していても、それはまだそれを修正のように見え、終了日はオフです。
EDIT: 期待される結果:あなたは唯一の(new DateTime
で行う)一つのオブジェクトを作成している
Start: 2016-05-10 End: 2016-05-24
期待どおりの結果が得られましたか? –
OOと手続き型コードを混ぜるのではなく、DateTime :: format()を使うべきです(date_formatの使用) – JesusTheHun
私が行った編集を見てください。 – Webtron