| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17986 -->
- <!-- 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
- <methodname>float</methodname> 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 ZF 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>
|