За последние 24 часа нас посетили 25058 программистов и 1675 роботов. Сейчас ищет 931 программист ...

Вывести echo через месяц

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

  1. DJTIMOHA

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

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Подскажите добрые программисты)
    У меня в переменной есть дата
    Код (Text):
    1. $daters="02.06.2017";
    Как сделать чтоб с помощью if вывести echo "можно"; ровно через 30 дней?
    Код (Text):
    1. if($daters==????) { echo "можно"; }
    Я понимаю что нужно какое то уравнение типа $time-$daters многое перепробовал, но не получается.
     
  2. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    День добрый)))
    Все точно так же делается:
    PHP:
    1. $d = date('d.m.Y', time() - 30 * 24 * 60 * 60);
    2. if($daters == $d)
    3. {
    4.     echo 'можно';
    5. }
    P.S.: Сделайте себе класс-обертку этих дат. В конструкторе класса переведите дату в метку времени и создайте необходимые методы для перевода даты или сравнения.
     
    #2 Maputo, 15 июл 2017
    Последнее редактирование: 15 июл 2017
  3. DJTIMOHA

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

    С нами с:
    5 апр 2015
    Сообщения:
    109
    Симпатии:
    2
    Спасибо огромное Вам!!!;)
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    @Maputo а как быть с месяцами, в которых 31 день, и с февралем?
    --- Добавлено ---
    @DJTIMOHA хотел тебе это написать ^
     
  5. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @[vs], автор просил 30 дней.
    Про месяц назад уже писал:
    месяц назад

    P.S.: Ваш логин так и не починили?
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    @Maputo с "собачкой" мой ник так и не работает, но я все равно вижу, когда просто отвечают в теме, в которой есть мои сообщения =))
     
  7. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Мне как то привычнее с DateTime + DateInterval работать
    PHP:
    1. $date = new DateTime('2000-01-01');
    2. $oldDate = $date->format('Y-m-d');
    3. $newDate = $date->add(new DateInterval('P30D'))->format('Y-m-d');
    4. var_dump($oldDate,$newDate);
    Код (Text):
    1. string(10) "2000-01-01"
    2. string(10) "2000-01-31"
     
    Deonis нравится это.
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.596
    Симпатии:
    1.764
    @alexblack, всё гораздо красивее
    PHP:
    1. $newDate = (clone $oldDate)->modify("-1 month")->format("Y-m-d");
    --- Добавлено ---
    И php сам справится с тем, где 30 дней, где 28, а где 31
     
    Deonis нравится это.
  9. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
  10. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.596
    Симпатии:
    1.764
    @Maputo, date_create_from_format
    --- Добавлено ---
    У меня в текущем проекте возни с датами выше крыши, так что я заценил возможности класса DateTime
     
    alexblack и Maputo нравится это.
  11. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Я тоже какое то время назад плотно посидел за датами и временем, DateTime и вспомогательные объекты реально упрощают жизнь в этом вопросе.Тут тебе реализованы практически все инструменты необходимые для комфортной работы.Даже предусмотрели возможность постоянно возвращать новый объект если потребуется(DateTimeImmutable):)