2010-03-15 15 views
8

Estoy usando PHP y jQuery para construir una línea de tiempo interactiva que necesita mostrar fechas entre 1500 y 2020. Normalmente utilizo la función strtotime de PHP cuando trabajo con fechas, pero no funciona para fechas anteriores a 1900.¿Cómo puedo trabajar con fechas anteriores a 1900 en PHP?

Las fechas vendrán de una base de datos MySQL, y tienen el formato de cadenas como "January 31, 1654" (este puede no ser el formato ideal, pero no puedo cambiar la forma en que se almacenan). Estoy usando PHP para analizar las fechas, básicamente, convertirlas en valores de píxeles que determinan dónde se muestran en la línea de tiempo.

¿Cuál es la forma más fácil de analizar estas fechas históricas?

Respuesta

9

La clase DateTime, aquí, podría ayudar (quoting):

Cada componente de la fecha (por ejemplo, el año) es almacena internamente como número de 64 bits de modo todas las fechas imaginables (incluyendo años negativos) son compatibles.


Pero tenga en cuenta que:

  • Es sólo existe en PHP> = 5.2
  • Y sólo existen varios métodos en PHP> = 5,3

Así que: ¡Cuidado de los cuales métodos que está utilizando, si está desarrollando PHP 5.3 y quiere que su software sea compatible con PHP 5.2


Otra solución (especialmente, si se utiliza Zend Framework en su aplicación) sería el componente Zend_Date (quoting):

Aunque PHP estado 5.2 docs, "El rango válido de una marca de tiempo es típicamente de Vier 13 Dic 1901 20:45:54 GMT al mar 19 Ene 2038 03:14:07 GMT ,"Zend_Date es compatible con una gama casi ilimitada , con la ayuda de la extensión BCMath

+0

Eso me puso en el camino correcto, ¡muchas gracias! – shipshape

+0

De nada :-) Diviértete! –

Cuestiones relacionadas