Работа с датой и временем нереально частая задача на php, особенно в разрезе работы в временными отрезками и/или периодами. Наиболее оптимальный вариант — работать с помощью объекта DateInterval.
Класс DateInterval используется для указания временного периода. При создании объекта следует указать период в специальном формате, например:
$duration = new DateInterval( "P1Y2M3DT4H5M6S" ) ;
Если присмотреться — стает понятно, что означает «шифр» в конструкторе:
P: период
Y: года
M: месяца
D: дни
T: время
H: часы
M: минуты
S: секунды
Приведу пару примеров, чтобы не писать 10 абзацов теории:
P2Y 2 года
P3M 3 месяца
P12D 12 дней
P3H 3 часа
P1М 1 минута
P11S 11 секунд
P2Y7M11DT1H14M10S 2 года, 7 месяцев, 11 дней, 1 час, 14 минуты и 10 секунды
ОЧЕНЬ ВАЖНО!!! В случае создания объекта DateInterval со значением 13 месяцев — т.е. «P13M», данные будут преобразованы в валидные значения «1 год и 1 месяц», а не 13 месяцев!
О том, как проводить манипуляции с датами — добавлять, вычитать их Вы можете почитать в этой статье.