Вычислить разницу дат с большим диапазоном с PHP

Мне нужно рассчитать количество десятилетий между двумя датами, которые могут охватывать форму 1708 до сегодняшнего дня – ограничения, насколько я могу собрать, – это 1970/1901 в рамках собственных функций PHP.

Может ли кто-нибудь посоветовать?

Благодаря!

Related of "Вычислить разницу дат с большим диапазоном с PHP"

Если у вас PHP> = 5.3.0:

$before = new DateTime('1708-02-02'); $decades = $before->diff(new DateTime())->y / 10; 

Вы можете использовать Zend_Date . Это часть Zend Framework, но может использоваться автономно, вам не нужно устанавливать всю инфраструктуру для ее использования. Он может работать с датами за пределами 1901 года, если расширение bcmath установлено на ваш PHP. Из теории работы Zend_date:

Это было возможно только потому, что Zend_Date не ограничивается отметками времени UNIX или целыми значениями. Расширение BCMath требуется для поддержки чрезвычайно больших дат за пределами диапазона Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. Дополнительные, крошечные математические ошибки могут возникнуть из-за присущих ограничений типов данных с плавающей точкой и округления, за исключением использования расширения BCMath.

Мне нравится рекомендовать компоненты Zend, потому что они ухожены, высококачественный код. Существуют и другие решения для этого, например, с использованием функций даты mySQL .

Я бы написал собственный метод.

Функции даты PHP основаны на эпохе (1969), поэтому там не будет большой помощи.

Если вы просто смотрите на годы, которые являются простой математикой

более высокий год – более ранний год = лет лет / 10 = десятилетия.

Если вы имеете в виду десятилетия от даже 01-10, 11-20, тогда вы можете сделать округление. (круглый срок, позднее, до ближайшего 10.