0

以前DateTimeは 2 つの日付の差分を取得していました。PHPドキュメントの例から直接:

$date1 = new DateTime('2012/03/15');
$date2 = new DateTime('2012/6/9');
$interval = $date1->diff($date2,true);
$days = $interval->format('%R%a days');

この結果、が表示されます。意味がわからないもの+86 daysについては、どこで参照できるのでしょうか。%R%a%R = +%a is number of days

第 2 に、値を取得することで、少なくとも3 か月以内 (3 か月は少なくとも 90 日) ではないこと86を伝えるために使用できる変数を持つことができます。これには単純に を使用できますが、精度のために、私が持っている値が 3 か月以内であることを判断する別の方法 (組み込みの PHP 関数またはライブラリ) はありますか?$date1$date2if-else

4

3 に答える 3

2
  1. のドキュメントを確認してくださいDateTime::diff
  2. が返されることを確認し、ドキュメントDateIntervalへのリンクをクリックします。
  3. その方法のドキュメントをformat読んでください。

if ($interval->format('%m') > 3)3か月以上経過しているかどうかをテストするために使用します。これは間隔の月の部分にすぎないことに注意してください。たとえば、「2年3か月」の「3」です。年も考慮に入れてください。1か月の日数は一定ではないため、これには単に日数を使用するべきではありません。90日と3ヶ月は同じものではありません。

于 2012-11-21T09:38:53.900 に答える
1

ドキュメントについてはhttp://www.php.net/manual/en/dateinterval.format.php

$months = 3;
if ($interval->format('%m') < $months) {
   echo "Less than $months months";
}
于 2012-11-21T09:38:09.907 に答える