Intereting Posts
PDO возвращает целочисленные столбцы как String в PHP5.4 Какой RSS-парсер следует использовать в PHP? Нужна помощь с введением нового элемента XML для детей с помощью PHP Как группировать элементы массива? Передача переменной между функциями PHP swig-php wrapper использует указатель, c-код – массив Получить URL-адрес категории в Magento при создании пользовательского меню Как усечь строку в PHP до предложения, ближайшего к определенному числу символов? Отслеживание в реальном времени на карте google Возвращает ли «-1» с usort действительно перемещать переменную $ b или сохраняет ее в одном месте? Правильное расположение для пользовательского Zend_Action_Controller Создайте механизм для передачи положительного целого числа и отобразите все значения серии Фибоначчи до и включите указанное значение Введите дату и время в Mysql Проблема при загрузке страницы PHP в div с Shadowbox jQuery PHP превращает PM и AM в 24 часа

Как я могу работать с датами до 1900 года в PHP?

Я использую PHP и jQuery для создания интерактивной временной шкалы, которая должна отображать даты между 1500 и 2020 годами. Обычно я использую функцию strtotime PHP при работе с датами, но она не работает для дат до 1900 года.

Даты будут получены из базы данных MySQL и форматируются как строки, такие как « January 31, 1654 » (это может быть не идеальный формат, но я не могу изменить, как они хранятся). Я использую PHP для анализа дат, в основном конвертируя их в значения пикселей, которые определяют, где они отображаются на временной шкале.

Каков самый простой способ проанализировать эти исторические даты?

Класс DateTime здесь может помочь ( цитирование ):

Каждый компонент даты (например, год) внутренне хранится как 64-битный номер, поэтому поддерживаются все предполагаемые даты (включая отрицательные годы).

Но учтите, что:

  • Он существует только в PHP> = 5.2
  • И несколько методов существуют только в PHP> = 5.3

Итак: остерегайтесь того, какие методы вы используете, если вы разрабатываете 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