|
|
@@ -1,6 +1,6 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<!-- Reviewed: no -->
|
|
|
-<!-- EN-Revision: 17598 -->
|
|
|
+<!-- EN-Revision: 17910 -->
|
|
|
<sect1 id="zend.date.definition.theory">
|
|
|
|
|
|
<title>動作原理</title>
|
|
|
@@ -30,47 +30,50 @@
|
|
|
|
|
|
<title>内部構造</title>
|
|
|
|
|
|
- <para>
|
|
|
- <itemizedlist mark='opencircle'>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- UNIX タイムスタンプ
|
|
|
- </para>
|
|
|
- <para>
|
|
|
- すべての日付や時刻は、たとえそれがあいまいな値 (年がないなど)
|
|
|
- であっても内部的には特定の時刻で表されます。
|
|
|
- 内部での形式は UNIX タイムスタンプとなります。これは、指定した時刻と
|
|
|
- January 1st, 1970 00:00:00 <acronym>GMT</acronym>/UTC の差です。
|
|
|
- これが可能なのは、<classname>Zend_Date</classname>
|
|
|
- が UNIX タイムスタンプや整数値の制限を受けないからです。
|
|
|
- BCMath 拡張モジュールにより、
|
|
|
- Fri, 13 Dec 1901 20:45:54 <acronym>GMT</acronym> から Tue, 19 Jan 2038 03:14:07 <acronym>GMT</acronym>
|
|
|
- の範囲を超えた非常に大きな日付をサポートすることができます。
|
|
|
- また、もし BCMath 拡張モジュールを使用しなければ、
|
|
|
- float 型そのものの制限や丸め誤差によって計算結果がおかしくなる可能性があります。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- 日付の一部はタイムスタンプのオフセットで表す
|
|
|
- </para>
|
|
|
- <para>
|
|
|
- したがって、"三時間" を表すインスタンスの内部表現は、
|
|
|
- January 1st, 1970 00:00:00 <acronym>GMT</acronym>/UTC から三時間後のタイムスタンプ、
|
|
|
- つまり 0 + 3 * 60 * 60 = 10800 となります。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <acronym>PHP</acronym> 関数
|
|
|
- </para>
|
|
|
- <para>
|
|
|
- 使用できるところでは、<classname>Zend_Date</classname> はできるだけ
|
|
|
- <acronym>PHP</acronym> の関数を使用してパフォーマンスを向上させます。
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- </itemizedlist>
|
|
|
- </para>
|
|
|
+ <itemizedlist mark='opencircle'>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ UNIX タイムスタンプ
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ すべての日付や時刻は、たとえそれがあいまいな値 (年がないなど)
|
|
|
+ であっても内部的には特定の時刻で表されます。
|
|
|
+ 内部での形式は UNIX タイムスタンプとなります。これは、指定した時刻と
|
|
|
+ January 1st, 1970 00:00:00 <acronym>GMT</acronym>/UTC の差です。
|
|
|
+ これが可能なのは、<classname>Zend_Date</classname>
|
|
|
+ が UNIX タイムスタンプや整数値の制限を受けないからです。
|
|
|
+ BCMath 拡張モジュールにより、
|
|
|
+ Fri, 13 Dec 1901 20:45:54 <acronym>GMT</acronym> から Tue, 19 Jan 2038 03:14:07 <acronym>GMT</acronym>
|
|
|
+ の範囲を超えた非常に大きな日付をサポートすることができます。
|
|
|
+ また、もし BCMath 拡張モジュールを使用しなければ、
|
|
|
+ float 型そのものの制限や丸め誤差によって計算結果がおかしくなる可能性があります。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ 日付の一部はタイムスタンプのオフセットで表す
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ したがって、"三時間" を表すインスタンスの内部表現は、
|
|
|
+ January 1st, 1970 00:00:00 <acronym>GMT</acronym>/UTC から三時間後のタイムスタンプ、
|
|
|
+ つまり 0 + 3 * 60 * 60 = 10800 となります。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ <acronym>PHP</acronym> 関数
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 使用できるところでは、<classname>Zend_Date</classname> はできるだけ
|
|
|
+ <acronym>PHP</acronym> の関数を使用してパフォーマンスを向上させます。
|
|
|
+ </para>
|
|
|
+ </listitem>
|
|
|
+ </itemizedlist>
|
|
|
|
|
|
</sect2>
|
|
|
|