За последние 24 часа нас посетили 17344 программиста и 1197 роботов. Сейчас ищут 1275 программистов ...

Непонятное поведение функции sub (класс DateTime)

Тема в разделе "Прочие вопросы по PHP", создана пользователем deadka, 15 мар 2012.

  1. deadka

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

    С нами с:
    2 май 2011
    Сообщения:
    3
    Симпатии:
    0
    Приветствую, коллеги.

    Проблема в следующем коротком участке кода:

    Код (Text):
    1. $d = new DateTime();
    2. $tmp = $d->getTimestamp();
    3. $d->sub(new DateInterval('P1D')); /*Нужно получить вчерашний день*/
    После инструкции
    Код (Text):
    1. $d->sub(new DateInterval('P1D'));
    при каждом вызове функции getTimestamp (
    Код (Text):
    1. $tmp = $d->getTimestamp();
    ) дата, находящая в $d начинает уменьшаться на сутки. Почему так?

    При этом если
    Код (Text):
    1. $d->sub(new DateInterval('P1D'));
    заменить на
    Код (Text):
    1. $d->modify('-1 day');
    то эффект невоспроизводится.

    Поделитесь соображениями по сабжу плиз.
     
  2. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
  3. deadka

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

    С нами с:
    2 май 2011
    Сообщения:
    3
    Симпатии:
    0
    Спасибо, так и подумал...