| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.date.introduction">
- <title>Introducción</title>
- <para>
- El componente
- <classname>Zend_Date</classname>
- ofrece una
- <acronym>API</acronym>
- 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
- <acronym>PHP</acronym>
- relacionadas. Para las últimas
- actualizaciones manuales, por favor ver el siguiente link
- <ulink url="http://framework.zend.com/wiki/display/ZFDOCDEV/Home">our
- online manual (sincronizado frecuentemente con Subversion) </ulink>
- .
- </para>
- <para>
- 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
- <link linkend="zend.locale.date.datesandtimes">
- <classname>Zend_Locale</classname>
- </link>
- .
- </para>
- <para>
- <classname>Zend_Date</classname>
- también soporta nombres de meses
- abreviados en varios idiomas.
- <classname>Zend_Locale</classname>
- 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.
- </para>
- <sect2 id="zend.date.setdefaulttimezone">
- <title>Asigne Siempre una Zona Horaria por Defecto</title>
- <para>
- Antes de utilizar funciones relacionadas con fechas en
- <acronym>PHP</acronym>
- 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
- <filename>php.ini</filename>
- <property>date.timezone</property>
- , o usando
- <ulink url="http://php.net/date_default_timezone_set">
- date_default_timezone_set() </ulink>
- . En
- <acronym>PHP</acronym>
- , 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
- <ulink
- url="http://unicode.org/cldr/data/diff/supplemental/territory_containment_un_m_49.html"
- >
- Lista de Identificadores de Zonas Horarias
- <acronym> CLDR
- </acronym>
- </ulink>
- .
- <example id="zend.date.setdefaulttimezone.example-1">
- <title>Configurando una Zona Horaria por Defecto</title>
- <programlisting language="php"><![CDATA[
- // zona horaria para un estadounidense en California
- date_default_timezone_set('America/Los_Angeles');
- // zona horaria para un alemán en Alemania
- date_default_timezone_set('Europe/Berlin');
- ]]></programlisting>
- </example>
- <emphasis>
- ¡Al crear instancias de
- <classname>Zend_Date</classname>
- , su zona horaria se
- convertirá automáticamente en la zona horaria por defecto
- actual!
- </emphasis>
- De esta forma, la configuración de zona
- horaria tendrá en cuenta cualquier cambio de hora
- de verano
- (Daylight Saving Time,
- <acronym>DST</acronym>
- ), eliminando la necesidad de
- especificarlo explícitamente el horario de verano (Daylight
- Saving Time,
- <acronym>DST</acronym>
- ).
- </para>
- <para>
- Tenga en cuenta que las zonas horarias
- <emphasis>
- <acronym>UTC</acronym>
- </emphasis>
- y
- <emphasis>
- <acronym>GMT</acronym>
- </emphasis>
- no incluyen el cambio de hora de
- verano (Daylight Saving Time,
- <acronym>DST</acronym>
- ). Esto significa que
- aunque defina a mano que
- <classname>Zend_Date</classname>
- deba
- trabajar con
- <acronym>DST</acronym>
- , podría ser anulado por las instancias de
- <classname>Zend_Date</classname>
- que han sido fijadas a
- <acronym>UTC</acronym>
- o
- <acronym>GMT</acronym>
- .
- </para>
- </sect2>
- <sect2 id="zend.date.why">
- <title>¿Por Qué Usar Zend_Date?</title>
- <para>
- <classname>Zend_Date</classname>
- ofrece las siguientes prestaciones,
- las cuales extienden el alcance de las funciones de
- fecha de
- <acronym>PHP</acronym>
- :
- </para>
- <itemizedlist mark="opencircle">
- <listitem>
- <para>
- <acronym>API</acronym>
- sencilla
- </para>
- <para>
- <classname>Zend_Date</classname>
- aporta una
- <acronym>API</acronym>
- 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.
- </para>
- </listitem>
- <listitem>
- <para>Completamente internacionalizado</para>
- <para>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.
- </para>
- </listitem>
- <listitem>
- <para>Timestamps ilimitados</para>
- <para>
- A pesar de que la documentación de
- <acronym>PHP</acronym>
- 5.2 indice: "El intervalo de valores admitidos de timestamps
- es desde el 13 Dec
- 1901 20:45:54
- <acronym>GMT</acronym>
- al 19 Ene 2038 03:14:07
- <acronym>GMT</acronym>
- ,"
- <classname>Zend_Date</classname>
- 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
- <command>~1.8e308</command>
- con una precisión
- de cerca de 14 dígitos decimales es un valor habitual
- (formato
- 64 bit
- <acronym>IEEE</acronym>
- )." [
- <ulink url="http://www.php.net/float">http://www.php.net/float</ulink>
- ]. 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.
- </para>
- </listitem>
- <listitem>
- <para>
- Soporte para especificaciones de fecha
- <acronym>ISO-8601</acronym>
- </para>
- <para>
- Las especificaciones de fecha
- <acronym>ISO_8601</acronym>
- están aceptadas.
- Incluso las especificaciones de fecha
- <acronym>ISO_8601</acronym>
- parcialmente
- autorizadas serán identificadas. Estos formatos de fecha son
- particularmente útiles al trabajar con bases de datos. Por
- ejemplo, aunque MsSQL
- y
- <ulink url="http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html">MySQL</ulink>
- difieren ligeramente uno de otro, ambos
- tienen soporte por parte de
- <classname>Zend_Date</classname>
- usando la constante de especificación de formato
- <link linkend="zend.date.constants.list">Zend_Date::ISO_8601</link>
- . Cuando las cadenas de fecha
- sean del tipo "
- <command>Y/m/d</command>
- " o "
- <command>Y-m-d H:i:s</command>
- ", de acuerdo con los
- tokens de formato
- <acronym>PHP</acronym>
- <methodname>date()</methodname>
- , use el soporte integrado de
- <classname>Zend_Date</classname>
- para fechas formateadas
- <acronym>ISO 8601</acronym>
- .
- </para>
- </listitem>
- <listitem>
- <para>Calcular amanecer y puesta de sol</para>
- <para>
- 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
- <acronym>PHP</acronym>
- favorito :)
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
|