Я использую функцию strtotime, чтобы найти разницу между двумя заданными датами, например:
$diff_in_mill_seconds = strtotime($ToDate) - strtotime($FromDate);
$difference_in_years = round($diff_in_mill_seconds / (365*60*60*24),1);
Этот сценарий завершается ошибкой, если значение $ ToDate превышает 19 января 2038 года.
Официальная документация PHP гласит:
Допустимый диапазон метки времени обычно с пт, 13 декабря 1901, 20:45:54 UTC, до вторника, 19 января 2038, 03:14:07 UTC.
В документации PHP также говорится:
Не рекомендуется использовать эту функцию для математических операций. Лучше использовать DateTime :: add () и DateTime :: sub () в PHP 5.3 и новее или DateTime :: modify () в PHP 5.2.
Я не могу использовать DateTime :: add () и DateTime :: sub (), поскольку версия PHP на сервере - 5.2.
Итак, как мне рассчитать разницу между двумя датами (после 2038-01-19) в годах, используя php 5.2?
DateTime::add
был специально введен в 5.3. - person deceze♦   schedule 10.04.2013