Как рассчитать дни между двумя датами в PHP?

Мне нужно рассчитать дни между датой, полученной из базы данных и текущей датой.

$upload_date = mysql_query("SELECT Date FROM Setting WHERE ID = $row[ID]"); $current_date = date("Ymd"); 

Как мне это сделать?

 select datediff(curdate(),'2011-03-01'); 

Если вы хотите сделать это в PHP, используйте класс DateTime :

 $current = new DateTime($current_date); $db_date = new DateTime($upload_date); $days = $current->diff($db_date)->days; 

Или старинный путь:

 $days = round((strtotime($current) - strtotime($db_date)) /24 /60 /60); 

Используйте SELECT DATEDIFF ('new_date', 'old_date');

 mysql> SELECT DATEDIFF('2006-04-01','2006-04-01'); +-------------------------------------+ | DATEDIFF('2006-04-01','2006-04-01') | +-------------------------------------+ | 0 | +-------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT DATEDIFF('2006-04-01','2007-04-01'); +-------------------------------------+ | DATEDIFF('2006-04-01','2007-04-01') | +-------------------------------------+ | -365 | +-------------------------------------+ 1 row in set (0.00 sec) mysql> SELECT DATEDIFF('2006-04-01','2005-04-01'); +-------------------------------------+ | DATEDIFF('2006-04-01','2005-04-01') | +-------------------------------------+ | 365 | +-------------------------------------+ 1 row in set (0.00 sec) 

DATEDIFF (выражение, выражение2)

DATEDIFF () возвращает количество дней между начальной датой expr и датой окончания expr2. expr и expr2 – выражения даты или даты и времени. В расчетах используются только части даты.

 mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30'); -> 1 mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31'); -> -31 

form http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff

 SELECT DATEDIFF( CURDATE(), Date ) FROM .... 

и я бы не использовал Date как имя поля, подумайте об изменении этого имени

Вы можете использовать этот формат http://php.net/manual/en/function.date.php, и он сделает это за вас

вы можете сделать это простым способом, как показано ниже,

 $current_date = date("Ymd"); // Current date $db_date = date("Ymd"); // Date from your database $diff = abs(strtotime($current_date) - strtotime($db_date)); $total_days = floor ($diff / (60*60*24));