Я использую PHP и jQuery для создания интерактивной временной шкалы, которая должна отображать даты между 1500 и 2020 годами. Обычно я использую функцию strtotime
PHP при работе с датами, но она не работает для дат до 1900 года.
Даты будут получены из базы данных MySQL и форматируются как строки, такие как « January 31, 1654
» (это может быть не идеальный формат, но я не могу изменить, как они хранятся). Я использую PHP для анализа дат, в основном конвертируя их в значения пикселей, которые определяют, где они отображаются на временной шкале.
Каков самый простой способ проанализировать эти исторические даты?
Класс DateTime
здесь может помочь ( цитирование ):
Каждый компонент даты (например, год) внутренне хранится как 64-битный номер, поэтому поддерживаются все предполагаемые даты (включая отрицательные годы).
Но учтите, что:
Итак: остерегайтесь того, какие методы вы используете, если вы разрабатываете PHP 5.3 и хотите, чтобы ваше программное обеспечение было совместимо с PHP 5.2
Другим решением (особенно, если вы используете Zend Framework в своем приложении) будет компонент Zend_Date
( цитирование ):
Хотя PHP 5.2 docs заявляет: «Допустимый диапазон отметки времени, как правило, от Fri, 13 Dec 1901 20:45:54 GMT до Tue, 19 января 2038 03:14:07 GMT:«
Zend_Date
поддерживает почти неограниченный диапазон, помощь расширения BCMath