За последние 24 часа нас посетили 30462 программиста и 1806 роботов. Сейчас ищут 859 программистов ...

strtotime

Тема в разделе "PHP для новичков", создана пользователем siiXth, 16 окт 2010.

  1. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    просто эпик
    в общем сделал календарь , слайдерный , вся фигня
    выводится по 2 недельки в линию с датами , по центру сегодняшняя дата
    чтобы сильно не возиться делаю циклом с $i++ при начальном $i=-7 и циклится до $i=7 (тоесть 2 недельки)
    так же есть ф-ция вывода определённой даты сразу при загрузке - в урле /date/16-11-10
    и в общем если я получаю date , то считаю разницу дней между полученной датой и сегодняшней (разницы mktime)
    далее эту разницу плюсую к нашему начальному и конечному $i и там где я прогоняю в цикле с разницой 2 недели я использую для получения даты
    PHP:
    1. <?
    2. date("d-m-y",strtotime($i." day"))
    3. ?>
    тоесть /date/16-11-10 прибавит успешно 30 дней и я получу дату , но ...
    строка 99
    PHP:
    1. <?
    2. if(date("d-m-y",strtotime($i." day"))==$_GET['date'])
    3. ?>
    тоесть эту строку можно понять как
    PHP:
    1. <?
    2. if(date("d-m-y",strtotime("30 day"))==$_GET['date'])
    3. ?>
    тоесть скрипт виснет на 14 движениях strtotime("30 day") ???
    и тоесть чем больше циферка $i у меня в скрипте тем больше нагрузка на серв ? О_О даже не мог представить
    на недельку - две всё летает...даже на год назад
    а не месяц вперёд - умирает *суицидирующийся смайлик*
     
  2. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    я использую strtotime, отнимаю и один день, и 460, сама функция вызывается несколько раз и не замечал, чтобы она зависала.

    в самой строчке лучше бы сделать один раз strtotime($_GET['date']) и потом с ней сравнивать в цикле. избавитесь от нескольких вызовов date("d-m-y"...).
     
  3. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    в общем оказалось НАМНОГО эффективнее заменить strtotime на mktime , теперь ничего не виснет и всё правильно считает
    я полагал что она лучше..))