2012-11-15 35 views

回答

1

只是做人的方式;如果當天在今天之前,則減去月份並加1。

$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; 
3

一個簡單的方法來做到這一點:

$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

+0

感謝您的回答。這是不準確的。我試着用$ datetime1 = new DateTime('2012-02-01'); $ datetime2 = new DateTime('2012-03-02');它返回0而不是1.我認爲傑克解釋的方式是正確的。 – Susitha