Подскажите добрые программисты) У меня в переменной есть дата Код (Text): $daters="02.06.2017"; Как сделать чтоб с помощью if вывести echo "можно"; ровно через 30 дней? Код (Text): if($daters==????) { echo "можно"; } Я понимаю что нужно какое то уравнение типа $time-$daters многое перепробовал, но не получается.
День добрый))) Все точно так же делается: PHP: $d = date('d.m.Y', time() - 30 * 24 * 60 * 60); if($daters == $d) { echo 'можно'; } P.S.: Сделайте себе класс-обертку этих дат. В конструкторе класса переведите дату в метку времени и создайте необходимые методы для перевода даты или сравнения.
@Maputo а как быть с месяцами, в которых 31 день, и с февралем? --- Добавлено --- @DJTIMOHA хотел тебе это написать ^
@[vs], автор просил 30 дней. Про месяц назад уже писал: месяц назад P.S.: Ваш логин так и не починили?
@Maputo с "собачкой" мой ник так и не работает, но я все равно вижу, когда просто отвечают в теме, в которой есть мои сообщения =))
Мне как то привычнее с DateTime + DateInterval работать PHP: $date = new DateTime('2000-01-01'); $oldDate = $date->format('Y-m-d'); $newDate = $date->add(new DateInterval('P30D'))->format('Y-m-d'); var_dump($oldDate,$newDate); Код (Text): string(10) "2000-01-01" string(10) "2000-01-31"
@alexblack, всё гораздо красивее PHP: $newDate = (clone $oldDate)->modify("-1 month")->format("Y-m-d"); --- Добавлено --- И php сам справится с тем, где 30 дней, где 28, а где 31
@alexblack, @mkramer, для начала вам придется сделать так: PHP: $oldDate = new DateTime(implode('-', array_reverse(explode('.', $daters))));
@Maputo, date_create_from_format --- Добавлено --- У меня в текущем проекте возни с датами выше крыши, так что я заценил возможности класса DateTime
Я тоже какое то время назад плотно посидел за датами и временем, DateTime и вспомогательные объекты реально упрощают жизнь в этом вопросе.Тут тебе реализованы практически все инструменты необходимые для комфортной работы.Даже предусмотрели возможность постоянно возвращать новый объект если потребуется(DateTimeImmutable)