日付間の月数を効率的に求める
プログラミングの一般的な課題は、2 つの日付間の月数を決定することです。 PHP では、この問題を解決するための複数のアプローチがあります。
DateTime クラスの使用 (PHP >= 5.3):
PHP 5.3 で導入された DateTime クラスは、便利な機能を提供します。日付操作のメソッド。月の差を計算するには:
<code class="php">$d1 = new DateTime("2009-09-01"); $d2 = new DateTime("2010-05-01"); $diff = $d1->diff($d2); echo $diff->m; // 4 echo $diff->m + ($diff->y * 12); // 8</code>
Unix タイムスタンプの使用:
PHP バージョン 5.3 より前の場合は、Unix タイムスタンプを利用できます:
<code class="php">$d1 = strtotime("2009-09-01"); $d2 = strtotime("2010-05-01"); echo (int)abs(($d1 - $d2) / (60 * 60 * 24 * 30)); // 8</code>
カスタム ループ:
DateTime も Unix タイムスタンプも使用できない場合は、追加の月ごとにカウンタを 1 つずつインクリメントするカスタム ループを検討してください:
<code class="php">$d1 = strtotime("2009-09-01"); $d2 = strtotime("2010-05-01"); $i = 0; while (($d1 = strtotime("+1 MONTH", $d1)) <= $d2) { $i++; } echo $i; // 8</code>
精度と信頼性:
Unix タイムスタンプのアプローチでは月が 30 日であると想定されており、不正確になる可能性があることに注意してください。精度を高めるために、可能であれば DateTime::diff を使用するか、データベースに依存して計算することをお勧めします。
以上がPHP で 2 つの日付の間の月数を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。