За последние 24 часа нас посетили 34847 программистов и 1749 роботов. Сейчас ищут 913 программистов ...

Арифметика с датой

Тема в разделе "PHP для новичков", создана пользователем san4ez, 13 фев 2017.

  1. san4ez

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

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    Всем привет. Чет я совсем запутался... Как можно совершать арифметические действия с датой?
    Допустим есть 2012-02-12, нужно вычесть, например, 2 месяца или 5 дней... Подскажите функции?
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
  3. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
  4. san4ez

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

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
  5. valentinnew

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

    С нами с:
    30 янв 2011
    Сообщения:
    161
    Симпатии:
    36
    а вообще есть DatetimeInterval и DateTime::add()
     
    san4ez нравится это.
  6. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    PHP:
    1.  $date = new DateTime('2012-02-12');
    2. $date->sub(new DateInterval('P5D'));
    3. echo $date->format('Y-m-d');
    PHP:
    1.  $date = new DateTime('2012-02-12');
    2. $date->sub(new DateInterval('P2M'));
    3. echo $date->format('Y-m-d');
     
    san4ez нравится это.
  7. san4ez

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

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    это я понял, я не могу понять про процедурный стиль...
     
  8. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    PHP:
    1. $date=date_create("2012-02-12");
    2. date_sub($date,date_interval_create_from_date_string("5 days"));
    3. echo date_format($date,"Y-m-d");
     
    san4ez нравится это.
  9. san4ez

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

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    блин)) я читаю док, я не пойму как сделать несколько изменений вместо 5 days...
    --- Добавлено ---
    еще вопрос...
    DateInterval('P5D')
    что значит тут буква P перед 5D?
     
  10. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    https://secure.php.net/manual/ru/dateinterval.construct.php
     
    san4ez нравится это.
  11. san4ez

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

    С нами с:
    13 авг 2016
    Сообщения:
    331
    Симпатии:
    47
    то есть это просто правило? она не нужна для чего то конкретного, но без нее работать не будет? странно)) спасибо за инфу!!
     
  12. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Ну это как у sprintf % грубо говоря)
     
    san4ez нравится это.