Вычислить разницу дат и выполнить условие

Статус
В этой теме нельзя размещать новые ответы.

irkmos

Создатель
Регистрация
7 Май 2007
Сообщения
48
Реакции
4
Ситуация такая:пользователь добавляет анкету на сайт,нужно чтобы в течении 10 дней она была помечена - как новая.

В базе данные хранятся в таком виде:
сегодняшняя дата: 2010-02-09
дата регистрации: 2009-12-19

Т.е. нужно вычислить разницу между этими датами и если она составляет не более 10 дней,выполняем условие(например :выводим значок "new").

Заранее благодарен.
 
Скрытое содержимое доступно для зарегистрированных пользователей!
 
И можно добавить, если дата извлекается из БД в виде 2010-02-09, её можно преобразовать в unix timestamp (число) при помощи PHP ф-ции strtotime(). Хотя первый вариант имеет более высокую производительность, правда это экономия на спичках :)

PHP:
q = mysql_query("SELECT datetime AS datareg FROM `base` WHERE id=''");
$r = mysql_fetch_array($q)
if ((3600*24*10)>=(time()-strtotime($r['datetime'])))
{echo "new";}
 
Прошу прощения за мою невнимательность и что ввел в заблуждение, неправильно указал исходные данные:
В базе данные хранятся в таком виде:
дата регистрации: 2009-12-19 11:56:09
Задача:
Т.е. нужно нужно определить сегодняшнюю дату и вычислить разницу между этими датами и если она составляет не более 10 дней,выполняем условие(например :выводим значок "new").
 
условие вашей задачи не поменялся, time() возвращает текущей момент.
 
Вообщем по примеру выше у меня ничего не получилось,сделал так :
$current_date = mktime (0,0,0,date("m") ,date("d"),date("Y")); //текущая дата
$old_date = strtotime ($datareg); //дата регистрации
$difference = ($current_date - $old_date); //разница в секундах
$difference_in_days = ($difference / 86400); //разница в днях
if ($difference_in_days<=10)
{
echo "";
}
В результате еще дополнительно получил : $difference_in_days //сколько дней анкета находится на сайте.

Спасибо всем за помощь.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху