Zend_Date-Basic.xml 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 15103 -->
  4. <sect1 id="zend.date.basic">
  5. <title>基本メソッド</title>
  6. <para>
  7. この章では、<classname>Zend_Date</classname> の基本的な使用法を、
  8. 例をもとに説明します。このマニュアルで "日付"
  9. というときは、常に時刻も含んでいるものとします。
  10. これは、明示的に説明していなくても同様です。
  11. 指定していない部分のデフォルトは "ゼロ" になります。
  12. つまり、日付情報をもたず 12 時間という時刻情報だけを持つ値と
  13. 日付情報だけを持つ値を足すと、その日付の "正午" を表すようになります。
  14. </para>
  15. <para>
  16. 日付のみを指定して時刻部を省略すると、時刻は 00:00:00 になります。
  17. 逆に時刻のみを指定した場合は、日付の内部表現は
  18. 01.01.1970 からの経過秒数と等しくなります。
  19. 通常、人間が時間を計算する場合は西暦ゼロ年を基準とします。
  20. しかし、多くのソフトウェアは 1970 年を基準として時間を計算します。
  21. そして、ここからの経過秒数をタイムスタンプとして表します。
  22. </para>
  23. <sect2 id="zend.date.basic.creation">
  24. <title>現在の日付</title>
  25. <para>
  26. 引数を指定せずにインスタンスを作成すると、
  27. デフォルトのロケールでの現在時刻を表すオブジェクトを返します。
  28. PHP の <code>time()</code> 関数で、このオブジェクトが使用する
  29. <ulink url="http://en.wikipedia.org/wiki/Unix_Time">UNIX タイムスタンプ</ulink>
  30. を取得します。PHP の環境で、
  31. <link linkend="zend.date.setdefaulttimezone">デフォルトのタイムゾーン</link>
  32. が正しく設定されていることを確認しておきましょう。
  33. </para>
  34. <example id="zend.date.basic.creation.example-1">
  35. <title>現在の日付の作成</title>
  36. <programlisting role="php"><![CDATA[
  37. $date = new Zend_Date();
  38. // 現在のタイムスタンプを出力します
  39. print $date;
  40. ]]>
  41. </programlisting>
  42. </example>
  43. </sect2>
  44. <sect2 id="zend.date.basic.functions">
  45. <title>Zend_Date の使用例</title>
  46. <para>
  47. <classname>Zend_Date</classname> の基本的なメソッドを見ていきましょう。
  48. 他の言語やフレームワークの日付オブジェクトではあまり見かけないメソッドもあります。
  49. 以下の各メソッドについて、簡単な例を示しています。
  50. </para>
  51. <sect3 id="zend.date.simple.functions.get">
  52. <title>日付の出力</title>
  53. <para>
  54. <classname>Zend_Date</classname> オブジェクトの日付を
  55. 地域化された形式の整数あるいは文字列で取得する際に、
  56. <code>get()</code> メソッドを使用します。このメソッドには、
  57. さまざまなオプションが使用可能です。これらのオプションについてはあとで説明します。
  58. </para>
  59. <example id="zend.date.simple.functions.get.example-1">
  60. <title>get() - 日付の出力</title>
  61. <programlisting role="php"><![CDATA[
  62. $date = new Zend_Date();
  63. // 指定した日付を出力します
  64. print $date->get();
  65. ]]>
  66. </programlisting>
  67. </example>
  68. </sect3>
  69. <sect3 id="zend.date.simple.functions.set">
  70. <title>日付の設定</title>
  71. <para>
  72. <code>set()</code> メソッドは、オブジェクトに格納されている日付を変更し、
  73. 変更後の値をタイムスタンプ (オブジェクトではありません) で返します。
  74. このメソッドでもさまざまなオプションが使用可能です。
  75. これらのオプションについてはあとで説明します。
  76. </para>
  77. <example id="zend.date.simple.functions.set.example-1">
  78. <title>set() - 日付の設定</title>
  79. <programlisting role="php"><![CDATA[
  80. $date = new Zend_Date();
  81. // 新しい時刻を設定します
  82. $date->set('13:00:00',Zend_Date::TIMES);
  83. print $date->get(Zend_Date::W3C);
  84. ]]>
  85. </programlisting>
  86. </example>
  87. </sect3>
  88. <sect3 id="zend.date.simple.functions.add">
  89. <title>日付の加減算</title>
  90. <para>
  91. 二つの日付を <code>add()</code> で加算するという場合、
  92. 通常は実際の日付データにそうでない日付データの一部 ("12 時間" など)
  93. を加算することになります。たとえば以下の例のようなものです。
  94. <code>add()</code> および <code>sub()</code> は、どちらも
  95. <code>set()</code> と同様のオプションを使用します。
  96. これについてはあとで説明します。
  97. </para>
  98. <example id="zend.date.simple.functions.add.example-1">
  99. <title>add() - 日付の加算</title>
  100. <programlisting role="php"><![CDATA[
  101. $date = new Zend_Date();
  102. // $date に 12 時間加算します
  103. $date->add('12:00:00', Zend_Date::TIMES);
  104. echo "get() で取得した日付 = ", $date->get(Zend_Date::W3C), "\n";
  105. // マジックメソッド __toString() から、Zend_Date の toString() をコールします
  106. echo "toString() で取得した日付 = ", $date, "\n";
  107. ]]>
  108. </programlisting>
  109. </example>
  110. </sect3>
  111. <sect3 id="zend.date.simple.functions.compare">
  112. <title>日付の比較</title>
  113. <para>
  114. <classname>Zend_Date</classname> の基本メソッド群はすべて、
  115. オブジェクトに含まれる日付データ全体に対して操作することができます。
  116. また、日付の一部に対して操作する (日付の "分"
  117. の部分だけをある値と比較するなど) こともできます。
  118. たとえば、現在時刻の "分" の部分を指定した値と比較するには
  119. <code>compare()</code> を使用します。以下に例を示します。
  120. </para>
  121. <example id="zend.date.simple.functions.compare.example-1">
  122. <title>compare() - 日付の比較</title>
  123. <programlisting role="php"><![CDATA[
  124. $date = new Zend_Date();
  125. // 二つの時刻を比較します
  126. if ($date->compare(10, Zend_Date::MINUTE) == -1) {
  127. print "This hour is less than 10 minutes old";
  128. } else {
  129. print "This hour is at least 10 minutes old";
  130. }
  131. ]]>
  132. </programlisting>
  133. </example>
  134. <para>
  135. 単純に等しいかどうかを比較するには <code>equals()</code>
  136. を使用します。これは boolean 値を返します。
  137. </para>
  138. <example id="zend.date.simple.functions.compare.example-2">
  139. <title>equals() - 日付あるいはその一部の同一性</title>
  140. <programlisting role="php"><![CDATA[
  141. $date = new Zend_Date();
  142. // 二つの日付を比較します
  143. if ($date->equals(10, Zend_Date::HOUR)) {
  144. print "十時です。仕事を始める時間です。";
  145. } else {
  146. print "十時ではありません。もうちょっと寝ていましょう。";
  147. }
  148. ]]>
  149. </programlisting>
  150. </example>
  151. </sect3>
  152. </sect2>
  153. </sect1>
  154. <!--
  155. vim:se ts=4 sw=4 et:
  156. -->