Zend_Date-Introduction.xml 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.date.introduction">
  5. <title>Introduction</title>
  6. <para>
  7. Le composant <classname>Zend_Date</classname> fournit une <acronym>API</acronym> simple de manipulation
  8. des dates et des temps. Ses méthodes acceptent un grand nombre de paramètres formatés,
  9. comme des parties de dates, et complètent bien le support natif des dates de <acronym>PHP</acronym>.
  10. </para>
  11. <para>
  12. Même si rester simple est un objectif, manipuler des dates et des temps localisés,
  13. les additionner, par parties, les convertir ... mène vers une certaine complexité
  14. inévitable. Les dates et les temps sont souvent notés de manière très différente selon la
  15. locale. Par exemple, certaines locales placent le mois en premier, d'autres l'année. Pour
  16. plus d'information sur la gestion de la localisation et de la normalisation, voyez le
  17. manuel de
  18. <link linkend="zend.locale.date.datesandtimes"><classname>Zend_Locale</classname></link>.
  19. </para>
  20. <para>
  21. <classname>Zend_Date</classname> supporte aussi les noms abrégés des mois dans
  22. beaucoup de langues.<classname>Zend_Locale</classname> facilite la localisation et la
  23. normalisation des mois localisés et des jours de semaines, leur conversion vers des
  24. timestamps.
  25. </para>
  26. <sect2 id="zend.date.setdefaulttimezone">
  27. <title>Définissez toujours un fuseau horaire par défaut</title>
  28. <para>
  29. Avant toute manipulation de date, que ce soit par les fonctions PHP, ou par Zend
  30. Framework, soyez sûrs que votre fuseau horaire par défaut est défini. Configurez votre
  31. variable d'environnement TZ, <code>date.timezone</code> dans le php.ini, ou utilisez
  32. <ulink url="http://php.net/date_default_timezone_set">
  33. date_default_timezone_set()</ulink>. En PHP nous pouvons ajuster les fonctions de date
  34. et temps pour fonctionner selon un certain fuseau horaire. Pour les options et la liste
  35. des fuseaux, consultez
  36. <ulink url="http://unicode.org/cldr/data/diff/supplemental/territory_containment_un_m_49.html">
  37. La liste des identifiants de fuseaux horaires</ulink>.
  38. <example id="zend.date.setdefaulttimezone.example-1">
  39. <title>Spécifier un fuseau par défaut </title>
  40. <programlisting language="php"><![CDATA[
  41. // timezone pour un américain en Californie
  42. date_default_timezone_set('America/Los_Angeles');
  43. // timezone pour un allemand en Allemagne
  44. date_default_timezone_set('Europe/Berlin');
  45. ]]></programlisting>
  46. </example>
  47. <emphasis>Lorsque vous créez des instances de Zend_Date, leur
  48. fuseau sera automatiquement mis à celui par défaut&#160;!</emphasis> Ainsi, le
  49. paramètre de fuseau horaire prendre en compte le DST si besoin, vous n'aurez donc pas
  50. besoin de leconfigurer.
  51. </para>
  52. <para>
  53. Souvenez vous que les fuseaux <emphasis>UTC</emphasis> et <emphasis>GMT</emphasis>
  54. n'incluent pas la notion "d'heure d'hiver"(Daylight Saving
  55. Time, <acronym>DST</acronym>). Donc même si vous dites à <classname>Zend_Date</classname> de prendre en
  56. compte le <acronym>DST</acronym>, il sera annulé pour les futures instances de
  57. <classname>Zend_Date</classname> utilisant <acronym>UTC</acronym> ou <acronym>GMT</acronym>.
  58. </para>
  59. </sect2>
  60. <sect2 id="zend.date.why">
  61. <title>Pourquoi utiliser Zend_Date&#160;?</title>
  62. <para>
  63. <classname>Zend_Date</classname> a les caractéristiques suivantes, qui étendent
  64. et complètent les fonctions de date de <acronym>PHP</acronym>&#160;:
  65. </para>
  66. <itemizedlist mark="opencircle">
  67. <listitem>
  68. <para>API simple</para>
  69. <para>
  70. <classname>Zend_Date</classname> propose une <acronym>API</acronym> simple, qui combine les
  71. meilleures fonctionnalités depuis 4 langages de programmation. Il est par
  72. exemple possible de comparer ou ajouter 2 dates.
  73. </para>
  74. </listitem>
  75. <listitem>
  76. <para>Internationalisé</para>
  77. <para>
  78. Toutes les abréviations des noms des mois ou des jours sont traduits dans
  79. plus de 130 langues. Les méthodes supportent des entrées et sorties de dates
  80. utilisant ces noms localisés.
  81. </para>
  82. </listitem>
  83. <listitem>
  84. <para>Timestamps infinis</para>
  85. <para>
  86. La documentation de <acronym>PHP</acronym> 5.2 indique, "L'intervalle de validité des
  87. timestamps est du 13 Dec 1901 20:45:54 <acronym>GMT</acronym> au 19 Jan 2038 03:14:07 <acronym>GMT</acronym>",
  88. <classname>Zend_Date</classname> supporte un intervalle quasi illimité grâce à
  89. l'extension BCMath. Si l'extension BCMath n'est pas disponible, alors le
  90. support des timestamp sera réduit à la valeur maximale du type <acronym>PHP</acronym>
  91. <code>float</code> supporté par le serveur. "La taille du float est dépendant
  92. de la plate-forme, un maximum de ~1.8e308 avec une précision d'environ 14
  93. décimales est une valeur connue (64 bit IEEE format)." [
  94. <ulink url="http://www.php.net/float">http://www.php.net/float</ulink>]. Aussi,
  95. des limitations dans le calcul des flottants, comme des arrondis non
  96. désirables, peuvent apparaître. Ces problèmes sont évités grâce à l'extension
  97. BCMath, si disponible.
  98. </para>
  99. </listitem>
  100. <listitem>
  101. <para>Support des dates ISO_8601</para>
  102. <para>
  103. Le support complet de ISO_8601 est pris en charge. Même les données
  104. partiellement ISO_8601 seront identifiées correctement. Ces formats sont utiles
  105. pour le travail avec des bases de données. Par exemple MSSQL et
  106. <ulink url="http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html">
  107. MySQL</ulink>les utilise mais diffèrent légèrement dans leur format, cependant
  108. ils sont supportés par <classname>Zend_Date</classname> grâce à la constante de
  109. spécification de format
  110. <link linkend="zend.date.constants.list">Zend_Date::ISO_8601</link>. Si les
  111. chaînes des dates sont conformes à "Y/m/d" ou "Y-m-d H:i:s", selon les formats
  112. de <methodname>date()</methodname> de <acronym>PHP</acronym>, utilisez le support de
  113. <classname>Zend_Date</classname> pour le format <acronym>ISO</acronym> 8601.
  114. </para>
  115. </listitem>
  116. <listitem>
  117. <para>Calculer le sunrise et sunset</para>
  118. <para>
  119. N'importe où dans la journée, les temps du sunrise (levé de soleil) et
  120. sunset (couché de soleil) peuvent être affichés.
  121. </para>
  122. </listitem>
  123. </itemizedlist>
  124. </sect2>
  125. </sect1>