3

我们如何使用 php.ini 计算从特定日期到当前日期时间过去了多少个月,并考虑每月的天数(例如:-January 31, Feb 28/29)。我尝试使用 diff() 函数无法解决我的问题。因为它计算过去了多少个 30 天。

4

2 回答 2

4

一个简单的方法:

$datetime1 = new DateTime('2012-11-15');
$datetime2 = new DateTime('2012-12-15');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%m months'); // output : +1 months

您应该使用 DateInterval。它真的很强大。 http://www.php.net/manual/en/class.dateinterval.php

于 2012-11-15T06:11:54.177 回答
3

只是按照人的方式去做;如果这一天在今天之前,则减去月份并加一。

$timestamp = strtotime('January 28');

list($old_year, $old_month, $old_day) = explode('-', date('Y-m-d', $timestamp));
list($now_year, $now_month, $now_day) = explode('-', date('Y-m-d'));

$months_ago = 12 * ($now_year - $old_year) + $now_month - $old_month;
if ($old_month < $now_month && $old_day < $now_day) {
    ++$months_ago;
}

echo $months_ago;
于 2012-11-15T05:54:52.197 回答