Zend_Date-Introduction.xml 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17986 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.date.introduction">
  5. <title>Introducción</title>
  6. <para>El componente <classname>Zend_Date</classname> ofrece una
  7. <acronym>API</acronym> detallada pero simple para manipular fechas y
  8. horas. Sus métodos aceptan una gran variedad de tipos de información,
  9. incluyendo partes de fecha, en numerosas combinaciones provocando muchas
  10. características y posibilidades más allá de las funciones de fecha
  11. <acronym>PHP</acronym> relacionadas. Para las últimas
  12. actualizaciones manuales, por favor ver el siguiente link <ulink
  13. url="http://framework.zend.com/wiki/display/ZFDOCDEV/Home">our
  14. online manual (sincronizado frecuentemente con Subversion) </ulink>
  15. .</para>
  16. <para>Aunque la simplicidad sea el objetivo, trabajar con fechas y tiempos
  17. localizados mientras se modifican, combinan y comparan partes, provoca
  18. una complejidad inevitable. Las fechas, así como los tiempos, a menudo
  19. son escritos de forma diferente en zonas locales distintas. Por ejemplo,
  20. algunos colocan primero el mes, mientras otros escriben el año en primer
  21. lugar cuando expresan fechas del calendario. Para más información
  22. relacionada con manejo de localizaciones y normalización, por favor vea
  23. el manual de <link linkend="zend.locale.date.datesandtimes">
  24. <classname>Zend_Locale</classname>
  25. </link> .</para>
  26. <para>
  27. <classname>Zend_Date</classname> también soporta nombres de meses
  28. abreviados en varios idiomas. <classname>Zend_Locale</classname>
  29. facilita la normalización de meses localizados y nombres de días de la
  30. semana a timestamps, los cuales pueden, a su vez, ser mostrados
  31. localizados a otras regiones.</para>
  32. <sect2 id="zend.date.setdefaulttimezone">
  33. <title>Asigne Siempre una Zona Horaria por Defecto</title>
  34. <para>Antes de utilizar funciones relacionadas con fechas en
  35. <acronym>PHP</acronym> o en el Zend Framework, primero debe
  36. asegurarse que su aplicación tiene una zona horaria correcta por
  37. defecto, configurando la variable de entorno TZ, usando el parametro
  38. del <filename>php.ini</filename> <property>date.timezone</property> , o usando <ulink
  39. url="http://php.net/date_default_timezone_set">
  40. date_default_timezone_set() </ulink> . En
  41. <acronym>PHP</acronym>, podemos ajustar todas las funciones
  42. relacionadas con fechas y hora para trabajar para un usuario
  43. particular configurando por defecto una zona horaria de acuerdo a
  44. las expectativas del usuario. Para una lista completa de
  45. configuraciones de zona horaria, vea el siguiente link <ulink
  46. url="http://unicode.org/cldr/data/diff/supplemental/territory_containment_un_m_49.html"
  47. > Lista de Identificadores de Zonas Horarias <acronym> CLDR
  48. </acronym>
  49. </ulink> . <example id="zend.date.setdefaulttimezone.example-1">
  50. <title>Configurando una Zona Horaria por Defecto</title>
  51. <programlisting language="php"><![CDATA[
  52. // zona horaria para un estadounidense en California
  53. date_default_timezone_set('America/Los_Angeles');
  54. // zona horaria para un alemán en Alemania
  55. date_default_timezone_set('Europe/Berlin');
  56. ]]></programlisting>
  57. </example>
  58. <emphasis>¡Al crear instancias de <classname>Zend_Date</classname>, su zona horaria se
  59. convertirá automáticamente en la zona horaria por defecto
  60. actual!</emphasis> De esta forma, la configuración de zona
  61. horaria tendrá en cuenta cualquier cambio de hora de verano
  62. (Daylight Saving Time, <acronym>DST</acronym>), eliminando la necesidad de
  63. especificarlo explícitamente el horario de verano (Daylight Saving Time, <acronym>DST</acronym>).</para>
  64. <para>Tenga en cuenta que las zonas horarias <emphasis><acronym>UTC</acronym></emphasis> y
  65. <emphasis><acronym>GMT</acronym></emphasis> no incluyen el cambio de hora de
  66. verano (Daylight Saving Time, <acronym>DST</acronym>). Esto significa que
  67. aunque defina a mano que <classname>Zend_Date</classname> deba
  68. trabajar con <acronym>DST</acronym>, podría ser anulado por las instancias de
  69. <classname>Zend_Date</classname> que han sido fijadas a <acronym>UTC</acronym> o
  70. <acronym>GMT</acronym>.</para>
  71. </sect2>
  72. <sect2 id="zend.date.why">
  73. <title>¿Por Qué Usar Zend_Date?</title>
  74. <para>
  75. <classname>Zend_Date</classname> ofrece las siguientes prestaciones,
  76. las cuales extienden el alcance de las funciones de fecha de
  77. <acronym>PHP</acronym>:</para>
  78. <itemizedlist mark="opencircle">
  79. <listitem>
  80. <para>
  81. <acronym>API</acronym> sencilla</para>
  82. <para>
  83. <classname>Zend_Date</classname> aporta una
  84. <acronym>API</acronym> muy sencilla, que combina lo
  85. mejor de la funcionalidad fecha/hora de cuatro lenguajes de
  86. programación. Es posible, por ejemplo, añadir o comparar dos
  87. horas dentro de una misma columna.</para>
  88. </listitem>
  89. <listitem>
  90. <para>Completamente internacionalizado</para>
  91. <para>Todos los nombres de meses y días de la semana completos
  92. y abreviados están incluidos para más de 130 idiomas. Los
  93. métodos admiten tanto entrada como salida de fechas usando
  94. los nombres localizados de meses y días de la semana.
  95. </para>
  96. </listitem>
  97. <listitem>
  98. <para>Timestamps ilimitados</para>
  99. <para>A pesar de que la documentación de <acronym>PHP</acronym>
  100. 5.2 indice: "El intervalo de valores admitidos de timestamps
  101. es desde el 13 Dec 1901 20:45:54 <acronym>GMT</acronym> al 19 Ene 2038 03:14:07
  102. <acronym>GMT</acronym>," <classname>Zend_Date</classname> admite un rango casi
  103. ilimitado, con la ayuda de la extensión BCMath. Si BCMath no
  104. está disponible, Zend_Date tendrá una funcionalidad de
  105. timestamps reducida al rango del tipo
  106. <methodname>float</methodname> soportado por su
  107. servidor. El tamaño de un float es dependiente de la
  108. plataforma, aunque un máximo de <command>~1.8e308</command> con una precisión
  109. de cerca de 14 dígitos decimales es un valor habitual
  110. (formato 64 bit <acronym>IEEE</acronym>)." [ <ulink
  111. url="http://www.php.net/float"
  112. >http://www.php.net/float</ulink> ]. Adicionalmente, las
  113. limitaciones heredadas de los tipos de dato float, y errores
  114. de redondeo de números flotantes pueden introducir errores
  115. en los cálculos. Para evitar estos problemas, los
  116. componentes ZF I18n usan la extensión BCMath, si está
  117. disponible.</para>
  118. </listitem>
  119. <listitem>
  120. <para>Soporte para especificaciones de fecha <acronym>ISO-8601</acronym></para>
  121. <para>Las especificaciones de fecha <acronym>ISO_8601</acronym> están aceptadas.
  122. Incluso las especificaciones de fecha <acronym>ISO_8601</acronym> parcialmente
  123. autorizadas serán identificadas. Estos formatos de fecha son
  124. particularmente útiles al trabajar con bases de datos. Por
  125. ejemplo, aunque MsSQL y <ulink
  126. url="http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html"
  127. >MySQL</ulink> difieren ligeramente uno de otro, ambos
  128. tienen soporte por parte de <classname>Zend_Date</classname>
  129. usando la constante de especificación de formato <link
  130. linkend="zend.date.constants.list"
  131. >Zend_Date::ISO_8601</link>. Cuando las cadenas de fecha
  132. sean del tipo "<command>Y/m/d</command>" o "<command>Y-m-d H:i:s</command>", de acuerdo con los
  133. tokens de formato <acronym>PHP</acronym> <methodname>date()</methodname>, use el soporte integrado de
  134. <classname>Zend_Date</classname> para fechas formateadas <acronym>ISO 8601</acronym>.</para>
  135. </listitem>
  136. <listitem>
  137. <para>Calcular amanecer y puesta de sol</para>
  138. <para>Las horas de amanecer y puesta de sol pueden mostrarse
  139. para cualquier lugar y día, para que no pierda ni un segundo
  140. de luz diurna para trabajar en su proyecto
  141. <acronym>PHP</acronym> favorito :)</para>
  142. </listitem>
  143. </itemizedlist>
  144. </sect2>
  145. </sect1>