Такая ситуация , надо в конце месяца запретить действие пользователю , я код написал и руками вписал дни за какой промежуток можно делать действие (сейчас стоит 30) , но когда подходит 30-31 число надо вместо 30 ставить 5 чтоб правки вносить можно было только до 5го числа , подскажите как это сделать?
этот код выведет дату 2019-08-05 , а нужно именно число , этакий интервал за сколько дней назад можно удалять , загвоздка в том что если удалить пытаются за к примеру 20.06.19 то можно было , а 20.05.19 уже нельзя и когда настало 05.08.19 то за 07 месяц тоже нельзя было удалить
Siverius, у меня почти такой же код который я написал
попробую весь код приложить чтоб донести правильный посыл
$datetime1 = date_create($row['date']); // берем дату из БД там к примеру в данный момент лежит 2019-07-31
$datetime2 = date_create(date('Y-m-d'));
$interval = $datetime1->diff($datetime2)->format('%R%a');
получили разницу дней в цифре
далее
$deleteDay = 30;
if ($interval <= $deleteDay) {
выполняю код
}
а теперь еще раз:
если у нас начался новый месяц число 1-5 то можем выполнить код но за даты максимум 2019-07-01
может как то если 1-5 число то ставить интервал = 35 , а если остальные даты то ставить интервал 5 ? Вроде идея норм , как только реализовать?
Если текущее число меньше либо равно 5, то минимальная дата изменения документа - первое число предыдущего месяца, иначе - первое число текущего месяца.
Если минимальная дата изменения документа больше даты документа (т.е.дата документа раньше минимальной даты изменения документа), то всё, иначе - выполнять ваш код.
Siverius, я немного не верно/не доконца обьяснил
надо не только в 1-5 числах выполнять код но и на протяжении месяца , накидаю больше примеров
сегодня 2019-07-31 , значит мы можем выполнить код из полученной даты за 2019-07-01
сегодня 2019-08-05 , тоже можем выполнить максимум за 07-01
сегодня 2019-08-06 , значит код выполняем уже только за этот месяц 08-01+
сегодня 2019-08-30 , выполняем код только до 2019-08-01
выходит "внутри месяца" можно выполнять код с любыми датами , но +5 дней следующего месяца
$minDate - минимальная дата, ранее которой уже нельзя редактировать.
Если сегодня 2019-07-31, т.е. число 31, то $minDate = "2019-07-01";
Если сегодня 2019-08-05, т.е. число 5, то $minDate = "2019-07-01";
Если сегодня 2019-08-06, т.е. число 6, то $minDate = "2019-08-01";
Если сегодня 2019-08-30, т.е. число 30, то $minDate = "2019-08-01";
Если дата документа $row['date'] меньше $minDate, то ничего не делаем, если дата документа $row['date'] больше $minDate, то выполняем ваш скрипт.