Автор Тема: Вычесть одну дату из другой  (Прочитано 5286 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tankist

  • Типа на танке
  • Старожил
  • ****
  • Сообщений: 461
  • +0/-0
  • 2
    • Просмотр профиля
Вычесть одну дату из другой
« : 16 Июля 2002, 00:24:16 »
В поиске по форуму искал ничего не нашел
так есть две даты.
Допустим

$date1
="15.07.2001";
$date2="15.07.2002";
$date=$date2-$date1;

И надо чтобы в $date ыло значение 365, т.е. надо вычесть одну дату из другой заранее спасибо.
Удачи

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Вычесть одну дату из другой
« Ответ #1 : 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

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Вычесть одну дату из другой
« Ответ #2 : 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; //Разницу - в дни
TANSTAAFL

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28