Introducción
El componente
Zend_Date
ofrece una API detallada pero simple para manipular fechas y
horas. Sus métodos aceptan una gran variedad de tipos de
información, incluyendo partes de fecha, en numerosas
combinaciones provocando muchas características y posibilidades
más allá de las funciones de fecha PHP relacionadas. Para
las últimas actualizaciones manuales, por favor ver el siguiente
link our
online manual (sincronizado frecuentemente con Subversion)
.
Aunque la simplicidad sea el objetivo, trabajar con fechas y
tiempos localizados mientras se modifican, combinan y comparan
partes, provoca una complejidad inevitable. Las fechas, así como
los tiempos, a menudo son escritos de forma diferente en
zonas locales distintas. Por ejemplo, algunos colocan primero el
mes, mientras otros escriben el año en primer lugar cuando
expresan fechas del calendario. Para más información relacionada
con manejo de localizaciones y normalización, por favor
vea el manual de
Zend_Locale
.
Zend_Date
también soporta nombres de meses abreviados en varios idiomas.
Zend_Locale
facilita la normalización de meses localizados y nombres de días
de la semana a timestamps, los cuales pueden, a su vez, ser
mostrados localizados a otras regiones.
Asigne Siempre una Zona Horaria por Defecto
Antes de utilizar funciones relacionadas con fechas en PHP o
en el Zend Framework, primero debe asegurarse que su
aplicación tiene una zona horaria correcta por defecto,
configurando la variable de entorno TZ, usando el
parametro del php.ini
date.timezone
, o usando
date_default_timezone_set()
. En PHP, podemos ajustar todas las funciones relacionadas
con fechas y hora para trabajar para un usuario particular
configurando por defecto una zona horaria de acuerdo a las
expectativas del usuario. Para una lista completa de
configuraciones de zona horaria, vea el siguiente link
Lista de Identificadores de Zonas Horarias CLDR
.
Configurando una Zona Horaria por Defecto¡Al crear instancias de Zend_Date, su zona horaria se convertirá automáticamente
en la zona horaria por defecto actual! De esta forma, la configuración de zona horaria tendrá
en cuenta cualquier cambio de hora de invierno/verano (Daylight Saving Time, DST), eliminando la necesidad
de especificarlo explícitamente.
Tenga en cuenta que las zonas horarias UTC y
GMT no incluyen el cambio de hora de invierno/verano (Daylight Saving Time, DST).
Esto significa que aunque defina a mano que Zend_Date deba trabajar con DST, podría
ser anulado por las instancias de Zend_Date que han sido fijadas a
UTC o GMT.
¿Por Qué Usar Zend_Date?Zend_Date ofrece las siguientes prestaciones, las cuales extienden el alcance de las funciones de fecha de PHP:
API sencilla
Zend_Date aporta una API muy sencilla, que combina lo mejor de la funcionalidad
fecha/hora de cuatro lenguajes de programación. Es posible, por ejemplo, añadir o comparar dos horas
dentro de una misma columna.
Completamente internacionalizado
Todos los nombres de meses y días de la semana completos y abreviados están incluidos para más de 130 idiomas.
Los métodos admiten tanto entrada como salida de fechas usando los nombres localizados de meses y días de la semana.
Timestamps ilimitados
A pesar de que la documentación de PHP 5.2 indice: "El intervalo de valores admitidos de timestamps es
desde el 13 Dec 1901 20:45:54 GMT al 19 Ene 2038 03:14:07 GMT," Zend_Date admite un rango
casi ilimitado, con la ayuda de la extensión BCMath. Si BCMath no está disponible, Zend_Date tendrá una
funcionalidad de timestamps reducida al rango del tipo float soportado por su servidor.
El tamaño de un float es dependiente de la plataforma, aunque un máximo de ~1.8e308 con una precisión
de cerca de 14 dígitos decimales es un valor habitual (formato 64 bit IEEE)." [
http://www.php.net/float
]. Adicionalmente, las limitaciones heredadas de los tipos de dato float, y errores de redondeo de números
flotantes pueden introducir errores en los cálculos. Para evitar estos problemas, los componentes ZF I18n
usan la extensión BCMath, si está disponible.
Soporte para especificaciones de fecha ISO_8601
Las especificaciones de fecha ISO_8601 están aceptadas. Incluso las especificaciones de fecha ISO_8601
parcialmente autorizadas serán identificadas. Estos formatos de fecha son particularmente útiles al
trabajar con bases de datos. Por ejemplo, aunque MsSQL y
MySQL
difieren ligeramente uno de otro, ambos tienen soporte por parte de Zend_Date usando la constante
de especificación de formato
Zend_Date::ISO_8601.
Cuando las cadenas de fecha sean del tipo "Y/m/d" o "Y-m-d H:i:s", de acuerdo con los tokens de formato
PHP date(), use el soporte integrado de Zend_Date para fechas formateadas ISO 8601.
Calcular amanecer y puesta de sol
Las horas de amanecer y puesta de sol pueden mostrarse para cualquier lugar y día, para que no pierda ni un segundo de luz diurna
para trabajar en su proyecto PHP favorito :)