На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
  
> Вичитание дат , Получение количества дней
    Задача получить "возраст записи" в БД в днях.

    Смысл простой. Доска объявлений, где каждое объявление хранится 7 дней.
    У каждой записи есть поле date в формате Y-m-d.

    Как получить разницу в днях? Есть ли в PHP такая функция. Простая попытка вычитания даты создания записи из текущей даты ничего не дала.

    Можно конечно же распарсить дату, создать алгоритм учитывающий число дней в месяце и т.д.

    Но думаю разработчики учли это. Иначе зачем в MySQL нужен формат date.

    Где-то попадалось на глаза что-то про daycount. Но такой функции в PHP нет. А может это из другой оперы.

    Всем заранее спасибо.
      Могу ошибаться, но: Есть в PHP функция gmdate (кажется так), которая по дате и времени выдает коичество секунд с 1 января 1970 года. Функция time() выдает число секунд от 1 января 1970 года до теперешней секунды. Отнимаем от сегодняшнего времени то, что надо (получаются секунды) - допустим, число X. Тогда:
      X Div 60 - число минут
      X Div 60*60 - число часов
      X Div 60*60*24 - число суток
      IMHO, так.
        2tserega

        Спасибо, попробую так.
          приведу пример кода - так лучше поймешь.
          Пример: Известна дата 12 июня (06 месяц) 2004 года, тебе нужно найти разницу в днях между сегодн. днем и этой датой.

          ExpandedWrap disabled
             
            $day = 12;
            $month = 5;
            $year = 2004;
            $to_unix_date = mktime("","","",$month,$day,$year);//переводим в юникс-дату
            $current_unix = time();//получаем текущую дату
            $estimate_unix = $to_unix_date - $current_unix; // разница между юникс-датами
            $estimate = floor($estimate_unix/(60*60*24)); // разница в днях(переводится из секунд)


          У меня работает. ;)
            voidman, как писал Denikus: вместо gmdate надо mktime. Перепутал, бывает :unsure:
              Цитата
              tserega, 26.02.04, 16:17
              ...вместо gmdate надо mktime. Перепутал, бывает ...


              Главное - идея. Спасибо.
                  Denikus, хорошее решение.
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0505 ]   [ 15 queries used ]   [ Generated: 12.05.24, 02:53 GMT ]