Zend_Date-Basic.xml 7.8 KB

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