Операции с датами?

Vlad_c

Guest
Операции с датами?

Как вычесть из одной даты другую?
есть текущая дата
$today = getdate(); 20/1/2004
и дата в базе такого же формата когда их сравниваю то все ок но мне нужно из теуущей вычесть та которая в базе и если разница в 30 дней то удалить запись

в VB просто берешь одну вычитаешь другуб и все ок учитывает и месяцы и года, а как сделать в php?
 

Falc

Новичок
Vlad_c
Даты надо хранить в формате даты/b], тогда просто берешь вычитаешь одну дату из другой :)
 

Vlad_c

Guest
Falc а если я преобразовал строку в дату то это не то?

$g=@date("d/m/Y",strtotime($f1['cur_data']));
 

Falc

Новичок
Vlad_c
Можно заменить одну ногу на костыль, но ходить будет не так удобно :)
 

Vlad_c

Guest
$g=@date("d/m/Y",strtotime($f1['cur_data'])); - но ведь эта функция возвращает дату нормально
 

Falc

Новичок
Vlad_c
Сначало определись где ты работаешь с датами, если в базе то и работай с ними в базе, все приличные СУБД поддерживают операции с датами.
Если же тебе надо работать с датами в ПЫХе то работай в timestamp.
Работать с датами в формате пользователя - это страшный гиморой.
 

stron

Guest
Re: Операции с датами?

Автор оригинала: Vlad_c
Как вычесть из одной даты другую?
есть текущая дата
$today = getdate(); 20/1/2004
и дата в базе такого же формата когда их сравниваю то все ок но мне нужно из теуущей вычесть та которая в базе и если разница в 30 дней то удалить запись

в VB просто берешь одну вычитаешь другуб и все ок учитывает и месяцы и года, а как сделать в php?
PHP:
$today = mktime(0, 0, 0, date("m")  , date("d"), date("Y"));
$lastday  = mktime(0, 0, 0, date("$m") , date("$d"), date("$Y"));
$def = $lastday - $today;
А получить читабельный ответ можно к примеру так

PHP:
echo strftime ("Def = %d day, %m month, %Y year <br>", $def);     

А разнится нужна 30 дней или 1 месяц? В феврале бывает например 28 дней :)

Если у тебя мускул то делай так: 
where date +interval 1 month < now()
 
Сверху