Forum Webscript.Ru

Программирование => PHP => Тема начата: Tankist от 16 Июля 2002, 00:24:16

Название: Вычесть одну дату из другой
Отправлено: Tankist от 16 Июля 2002, 00:24:16
В поиске по форуму искал ничего не нашел
так есть две даты.
Допустим

$date1="15.07.2001";
$date2="15.07.2002";
$date=$date2-$date1;
 
И надо чтобы в $date ыло значение 365, т.е. надо вычесть одну дату из другой заранее спасибо.
Название: Вычесть одну дату из другой
Отправлено: Меняздесьдавнонет от 16 Июля 2002, 02:08:14
В базе mysql все просто. там есть функция TO_DAYS()
но и в РНР это сделать нетрудно, если дата лежит в диапазоне 1970- 2036.
Сначала переводим в секунды
list($day,$month,$year)=explode(".",$date1);
$time=mktime (0,0,0,$month,$day,$year);
потом то же со второй датой
потом вычитаем одну дату из другой и делим на 60*60*24, и вуаля - искомый результат в днях найден.
Название: Вычесть одну дату из другой
Отправлено: Maniac от 16 Июля 2002, 11:51:43
А ты никогда не задумывался, зачем вообще придумали время в формате UNIX epoch? ;)
Переводишь два времени в количество секунд, начиная с 1 января 1970 года, вычитаешь и перебрасываешь (если надо) обратно в читаемый формат.

В конкретном твоем примере это примерно так:


$date1=explode(\'.\',\'15.01.2002\');
$date1=mktime(0,0,0,$t[1],$t[0],$t[2]); //Первую дату в секунды
$date2=explode(\'.\',\'15.01.2001\');
$date2=mktime(0,0,0,$t[1],$t[0],$t[2]);//Вторую дату в секунды

$date3=$date2-$date1; //Вычитаем
$date3=$date3/86400; //Разницу - в дни