Zend_Date-Introduction.xml 11 KB

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