「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > なぜPHPのDateTime :: Modify( '+1 Month')が予期しない結果を生み出すのですか?

なぜPHPのDateTime :: Modify( '+1 Month')が予期しない結果を生み出すのですか?

2025-03-26に投稿されました
ブラウズ:965

Why Does PHP's DateTime::modify(' 1 month') Produce Unexpected Results?

PHP DateTimeで月数の変更:PHPのDateTimeクラスを操作する場合、数か月を追加または減算する場合、意図した動作を発見します。ドキュメントが警告しているように、これらの操作は見た目ほど直感的ではないため、これらの操作に「注意してください」。 $ date-> modify( '1 month'); // 1か月先に移動します echo $ date-> format( 'y-m-d')。 "\ n"; // 2001-01-31を印刷します $ date-> modify( '1 month'); //別の月を前進させます echo $ date-> format( 'y-m-d')。 "\ n"; //印刷2001-03-03

は、予想通り、月を増やすのではなく、3月3日にジャンプします。なぜこれが? 2月1日。

さらに月は3月3日になります。2月は2001年に28日しか経過していないためです。オプション:

手動計算:

来月の日数を確認し、それに応じて日付を手動で調整します。例:

$date = new DateTime('2000-12-31');
$date->modify(' 1 month'); // Move ahead by 1 month
echo $date->format('Y-m-d') . "\n"; // Prints 2001-01-31

$date->modify(' 1 month'); // Advance another month
echo $date->format('Y-m-d') . "\n"; // Prints 2001-03-03
$ d = new DateTime( '2010-01-31'); $ d-> modify( '来月の初日'); echo $ d-> format( 'f')、 "\ n"; // 2月

結論

  1. を正しく印刷します。手動計算または「来月の初日」機能を使用することにより、PHPアプリケーションで目的の日付操作機能を達成できます。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3