2

私のサーバーは古いバージョンの PHP を使用しているため、残念ながら $datetime1->diff($datetime2) メソッドを使用できません。

現在、次のコードを使用していますが、実際には機能しません。

$from = explode("-",date("Y-m-d",$recurring_invoices->start_date));
$to = explode("-",date("Y-m-d",$to_time));
$months = ($to[0]-$from[0])*12+$to[1]-$from[1];

7 月 30 日から 6 月 1 日までを 1 か月として計算します。7 月 1 日から 6 月 1 日までの日付のみを 1 か月としてカウントする必要があります。

MYSQL TIMESTAMPDIFF 関数があることに気付きましたが、それも機能していないようです。

$query = "SELECT TIMESTAMPDIFF(MONTH,'$recurring_invoices->start_date','$from_time')";
print_r($this->queryResult($query));

また

$query = "SELECT TIMESTAMPDIFF(MONTH, from_date, to_date) FROM agenda";
print_r($this->queryResult($query));

あなたの助けは大歓迎です!

4

1 に答える 1

1

これは機能するはずですが、テストされておらず、現在テストおよび修正されています。

list($startYear, $startMonth, $startDay) = explode('-', date('Y-n-j', $recurring_invoices->start_date));
list($endYear, $endMonth, $endDay) = explode('-', date('Y-n-j', $to_time));

$months = 0;
$months += ($endYear-$startYear) * 12;
$months += $endMonth - $startMonth;
if ($startDay > $endDay) {
  $months -= 1;
}

echo $months;
于 2012-07-11T21:55:22.157 に答える