「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP で 2 つの日付の間の月数を効率的に計算するにはどうすればよいですか?

PHP で 2 つの日付の間の月数を効率的に計算するにはどうすればよいですか?

2024 年 11 月 8 日に公開
ブラウズ:641

How to Efficiently Calculate the Number of Months Between Two Dates in PHP?

日付間の月数を効率的に求める

プログラミングの一般的な課題は、2 つの日付間の月数を決定することです。 PHP では、この問題を解決するための複数のアプローチがあります。

DateTime クラスの使用 (PHP >= 5.3):

PHP 5.3 で導入された DateTime クラスには便利なメソッドが用意されています。日付操作用。月の差を計算するには:

$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

Unix タイムスタンプの使用:

PHP バージョン 5.3 より前の場合、Unix タイムスタンプを利用できます:

$d1 = strtotime("2009-09-01");
$d2 = strtotime("2010-05-01");

echo (int)abs(($d1 - $d2) / (60 * 60 * 24 * 30)); // 8

カスタム ループ:

DateTime も Unix タイムスタンプも使用できない場合は、追加の月ごとにカウンタを 1 つずつインクリメントするカスタム ループを検討してください:

$d1 = strtotime("2009-09-01");
$d2 = strtotime("2010-05-01");
$i = 0;

while (($d1 = strtotime(" 1 MONTH", $d1)) 

精度と信頼性:

Unix タイムスタンプのアプローチでは月が 30 日であると仮定しているため、不正確になる可能性があることに注意してください。精度を高めるために、可能であれば DateTime::diff を使用するか、データベースに依存して計算することをお勧めします。

最新のチュートリアル もっと>

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

Copyright© 2022 湘ICP备2022001581号-3