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.inidate.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 verano
(Daylight Saving Time,
DST
), eliminando la necesidad de
especificarlo explícitamente el horario de verano (Daylight
Saving Time,
DST
).
Tenga en cuenta que las zonas horarias
UTC
y
GMT
no incluyen el cambio de hora de
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 internacionalizadoTodos 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 de Zend Framework 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 :)