Как на PHP корректно прибавить месяц к дате
27.11.2015 | Категория: Web-мастеру и не только | Автор: ManHunter
Как на PHP корректно прибавить месяц к дате
Одна из интересных задач, с которой мне приходилось сталкиваться на практике при работе с датами на PHP, это так называемый "календарный месяц". То есть некий интервал дат, отличающийся на месяц. Если дата находится где-то в середине или в начале месяца, то никаких сложностей, просто увеличиваем номер месяца на единицу, при необходимости корректируем год. А проблема начинается в тех случаях, когда дата начала интервала приходится на какое-нибудь число в конце месяца. Просто увеличить значение месяца на следующий, оставив число без изменений, нельзя, полученная дата может оказаться несуществующей. Добавлять 30 или 31 день тоже некорректно, в коротком феврале итоговая дата после такого прибавления перемахнет на начало марта. Вот для наглядности несколько примеров, чтобы было понятно, о чем идет речь:
Code (PHP) : Убрать нумерацию
- //------------------------------------------------------
- // Дата в начале или в середине месяца
- //------------------------------------------------------
- echo date('d.m.Y',strtotime('2015-01-12 +1 month'));
- // 12.02.2015 - правильно
- //------------------------------------------------------
- // Дата в конце месяца
- //------------------------------------------------------
- echo date('d.m.Y',strtotime('2015-01-29 +1 month'));
- // 01.03.2015 - неправильно! Ожидалось 28.02.2015
- echo date('d.m.Y',strtotime('2015-01-31 +1 month'));
- // 03.03.2015 - неправильно! Ожидалось 28.02.2015
- echo date('d.m.Y',strtotime('2015-11-30 +1 month'));
- // 30.12.2015 - неправильно! Ожидалось 31.12.2015
Читать статью целиком »
Просмотров: 16893 | Комментариев: 6