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

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

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

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

9
задан shipshape 25 June 2014 в 20:56
поделиться

1 ответ

Здесь может помочь класс DateTime ( цитируя ):

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


Но обратите внимание, что:

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

Итак: будьте осторожны, какие методы вы используете, если вы разрабатываете на PHP 5.3 и хотите, чтобы ваше программное обеспечение было совместимо с PHP 5.2


Другим решением (особенно при использовании Zend Framework в вашем приложении) был бы компонент Zend_Date ( цитата ):

Хотя в документации PHP 5.2 указано, « допустимый диапазон метки времени обычно с пятницы, 13 декабря 1901 г. 20: С 45:54 GMT по вторник, 19 января 2038 г., 03:14:07 GMT, " Zend_Date поддерживает почти неограниченный диапазон с помощью расширение BCMath

9
ответ дан 4 December 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: