| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.date.basic">
- <title>基本メソッド</title>
- <para>
- この章では、<classname>Zend_Date</classname> の基本的な使用法を、
- 例をもとに説明します。このマニュアルで "日付"
- というときは、常に時刻も含んでいるものとします。
- これは、明示的に説明していなくても同様です。
- 指定していない部分のデフォルトは "ゼロ" になります。
- つまり、日付情報をもたず 12 時間という時刻情報だけを持つ値と
- 日付情報だけを持つ値を足すと、その日付の "正午" を表すようになります。
- </para>
- <para>
- 日付のみを指定して時刻部を省略すると、時刻は 00:00:00 になります。
- 逆に時刻のみを指定した場合は、日付の内部表現は
- 01.01.1970 からの経過秒数と等しくなります。
- 通常、人間が時間を計算する場合は西暦ゼロ年を基準とします。
- しかし、多くのソフトウェアは 1970 年を基準として時間を計算します。
- そして、ここからの経過秒数をタイムスタンプとして表します。
- </para>
- <sect2 id="zend.date.basic.creation">
- <title>現在の日付</title>
- <para>
- 引数を指定せずにインスタンスを作成すると、
- デフォルトのロケールでの現在時刻を表すオブジェクトを返します。
- <acronym>PHP</acronym> の <methodname>time()</methodname> 関数で、このオブジェクトが使用する
- <ulink url="http://en.wikipedia.org/wiki/Unix_Time">UNIX タイムスタンプ</ulink>
- を取得します。<acronym>PHP</acronym> の環境で、
- <link linkend="zend.date.setdefaulttimezone">デフォルトのタイムゾーン</link>
- が正しく設定されていることを確認しておきましょう。
- </para>
- <example id="zend.date.basic.creation.example-1">
- <title>現在の日付の作成</title>
- <programlisting language="php"><![CDATA[
- $date = new Zend_Date();
- // 現在のタイムスタンプを出力します
- print $date;
- ]]></programlisting>
- </example>
- </sect2>
- <sect2 id="zend.date.basic.functions">
- <title>Zend_Date の使用例</title>
- <para>
- <classname>Zend_Date</classname> の基本的なメソッドを見ていきましょう。
- 他の言語やフレームワークの日付オブジェクトではあまり見かけないメソッドもあります。
- 以下の各メソッドについて、簡単な例を示しています。
- </para>
- <sect3 id="zend.date.simple.functions.get">
- <title>日付の出力</title>
- <para>
- <classname>Zend_Date</classname> オブジェクトの日付を
- 地域化された形式の整数あるいは文字列で取得する際に、
- <methodname>get()</methodname> メソッドを使用します。このメソッドには、
- さまざまなオプションが使用可能です。これらのオプションについてはあとで説明します。
- </para>
- <example id="zend.date.simple.functions.get.example-1">
- <title>get() - 日付の出力</title>
- <programlisting language="php"><![CDATA[
- $date = new Zend_Date();
- // 指定した日付を出力します
- print $date->get();
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.date.simple.functions.set">
- <title>日付の設定</title>
- <para>
- <methodname>set()</methodname> メソッドは、オブジェクトに格納されている日付を変更し、
- 変更後の値をタイムスタンプ (オブジェクトではありません) で返します。
- このメソッドでもさまざまなオプションが使用可能です。
- これらのオプションについてはあとで説明します。
- </para>
- <example id="zend.date.simple.functions.set.example-1">
- <title>set() - 日付の設定</title>
- <programlisting language="php"><![CDATA[
- $date = new Zend_Date();
- // 新しい時刻を設定します
- $date->set('13:00:00',Zend_Date::TIMES);
- print $date->get(Zend_Date::W3C);
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.date.simple.functions.add">
- <title>日付の加減算</title>
- <para>
- 二つの日付を <methodname>add()</methodname> で加算するという場合、
- 通常は実際の日付データにそうでない日付データの一部 ("12 時間" など)
- を加算することになります。たとえば以下の例のようなものです。
- <methodname>add()</methodname> および <methodname>sub()</methodname> は、どちらも
- <methodname>set()</methodname> と同様のオプションを使用します。
- これについてはあとで説明します。
- </para>
- <example id="zend.date.simple.functions.add.example-1">
- <title>add() - 日付の加算</title>
- <programlisting language="php"><![CDATA[
- $date = new Zend_Date();
- // $date に 12 時間加算します
- $date->add('12:00:00', Zend_Date::TIMES);
- echo "get() で取得した日付 = ", $date->get(Zend_Date::W3C), "\n";
- // マジックメソッド __toString() から、Zend_Date の toString() をコールします
- echo "toString() で取得した日付 = ", $date, "\n";
- ]]></programlisting>
- </example>
- </sect3>
- <sect3 id="zend.date.simple.functions.compare">
- <title>日付の比較</title>
- <para>
- <classname>Zend_Date</classname> の基本メソッド群はすべて、
- オブジェクトに含まれる日付データ全体に対して操作できます。
- また、日付の一部に対して操作する (日付の "分"
- の部分だけをある値と比較するなど) こともできます。
- たとえば、現在時刻の "分" の部分を指定した値と比較するには
- <methodname>compare()</methodname> を使用します。以下に例を示します。
- </para>
- <example id="zend.date.simple.functions.compare.example-1">
- <title>compare() - 日付の比較</title>
- <programlisting language="php"><![CDATA[
- $date = new Zend_Date();
- // 二つの時刻を比較します
- if ($date->compare(10, Zend_Date::MINUTE) == -1) {
- print "This hour is less than 10 minutes old";
- } else {
- print "This hour is at least 10 minutes old";
- }
- ]]></programlisting>
- </example>
- <para>
- 単純に等しいかどうかを比較するには <methodname>equals()</methodname>
- を使用します。これは boolean 値を返します。
- </para>
- <example id="zend.date.simple.functions.compare.example-2">
- <title>equals() - 日付あるいはその一部の同一性</title>
- <programlisting language="php"><![CDATA[
- $date = new Zend_Date();
- // 二つの日付を比較します
- if ($date->equals(10, Zend_Date::HOUR)) {
- print "十時です。仕事を始める時間です。";
- } else {
- print "十時ではありません。もうちょっと寝ていましょう。";
- }
- ]]></programlisting>
- </example>
- </sect3>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|