Мне нужно рассчитать дни между датой, полученной из базы данных и текущей датой.
$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));