| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15103 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.date.overview">
- <title>Zend_Date API Overview</title>
- <para>
- Mientras la API <classname>Zend_Date</classname> permanece simple y unitaria, el diseo permanece flexible y poderoso
- a travs de las permiutaciones de operaciones y operandos.
- </para>
- <sect2 id="zend.date.options">
- <title>Opciones Zend_Date</title>
- <sect3 id="zend.date.options.formattype">
- <title>seleccionando el tipo de formato de la fecha</title>
- <para>
- Several methods use date format strings, in a way similar to PHP's <methodname>date()</methodname>.
- If you are more comfortable with PHP's date format specifier than with ISO format specifiers,
- then you can use <classname>Zend_Date::setOptions(array('format_type' => 'php'))</classname>.
- Afterward, use PHP's date format specifiers for all functions which accept a <methodname>$format</methodname> parameter.
- Use <classname>Zend_Date::setOptions(array('format_type' => 'iso'))</classname> to switch back to the default mode of
- supporting only ISO date format tokens. For a list of supported format codes, see
- <xref linkend="zend.date.constants.phpformats" />
- </para>
- </sect3>
- <sect3 id="zend.date.options.fixdst">
- <title>DST and Date Math</title>
- <para>
- When dates are manipulated, sometimes they cross over a DST change, normally resulting in the date
- losing or gaining an hour. For exmaple, when adding months to a date before a DST change, if the
- resulting date is after the DST change, then the resulting date will appear to lose or gain an hour,
- resulting in the time value of the date changing. For boundary dates, such as midnight of the first
- or last day of a month, adding enough months to cross a date boundary results in the date losing
- an hour and becoming the last hour of the preceding month, giving the appearance of an "off by 1"
- error. To avoid this situation, the DST change ignored by using the <methodname>fix_dst</methodname> option.
- When crossing the Summer/Winter DST boundary, normally an hour is substracted or added depending
- on the date. For example, date math crossing the Spring DST leads to a date having a day value
- one less than expected, if the time part of the date was originally 00:00:00. Since Zend_Date
- is based on timestamps, and not calendar dates with a time component, the timestamp loses an hour,
- resulting in the date having a calendar day value one less than expected.
- To prevent such problems use the option <methodname>fix_dst</methodname>, which defaults to true, causing DST
- to have no effect on date "math" (<methodname>addMOnth(), subMonth()</methodname>). Use
- <classname>Zend_Date::setOptions(array('fix_dst' => false))</classname> to enable the subtraction or addition
- of the DST adjustment when performing date "math".
- </para>
- <para>
- <emphasis>If your actual timezone within the instance of <classname>Zend_Date</classname>
- is set to UTC or GMT the option <methodname>'fix_dst'</methodname> will not be used</emphasis> because
- these two timezones do not work with DST. When you change the timezone for this instance
- again to a timezone which is not UTC or GMT the previous set 'fix_dst' option will be used
- again for date "math".
- </para>
- </sect3>
- <sect3 id="zend.date.options.extendmonth">
- <title>Month Calculations</title>
- <para>
- When adding or substracting months from an existing date, the resulting value for the day of
- the month might be unexpected, if the original date fell on a day close to the end of the month.
- For example, when adding one month to January 31st, people familiar with SQL will expect February
- 28th as the result. On the other side, people familiar with Excel and OpenOffice will expect
- March 3rd as the result. The problem only occurs, if the resulting month does not have the day,
- which is set in the original date. For ZF developers, the desired behavior is selectable using
- the <methodname>extend_month</methodname> option to choose either the SQL behaviour, if set to false,
- or the spreadsheet behaviour when set to true. The default behaviour for <methodname>extend_month</methodname>
- is false, providing behavior compatible to SQL. By default, <classname>Zend_Date</classname> computes month
- calculations by truncating dates to the end of the month (if necessary), without wrapping into the
- next month when the original date designates a day of the month exceeding the number of days in
- the resulting month. Use <classname>Zend_Date::setOptions(array('extend_month' => true));</classname>
- to make month calculations work like popular spreadsheet programs.
- </para>
- </sect3>
- <sect3 id="zend.date.options.cache">
- <title>Speed up Date Localization and Normalization with Zend_Cache</title>
- <para>
- You can speed up <classname>Zend_Date</classname> by using an <classname>Zend_Cache</classname> adapter.
- This speeds up all methods of <classname>Zend_Date</classname> when you are using localized data.
- For example all methods which accept <classname>Zend_Date::DATE</classname> and
- <classname>Zend_Date::TIME</classname> constants would benefit from this. To set an <classname>Zend_Cache</classname>
- adapter to <classname>Zend_Date</classname> just use
- <classname>Zend_Date::setOptions(array('cache' => $adapter));</classname>.
- </para>
- </sect3>
- <sect3 id="zend.date.options.timesync">
- <title>Receiving Syncronised Timestamps with Zend_TimeSync</title>
- <para>
- Normally the clocks from servers and computers differ from each other. <classname>Zend_Date</classname>
- is able to handle such problems with the help of <classname>Zend_TimeSync</classname>. You can set a
- timeserver with <classname>Zend_Date::setOptions(array('timesync' => $timeserver));</classname> which
- will set the offset between the own actual timestamp and the real actual timestamp for all
- instances of Zend_Date. Using this option does not change the timestamp of existing instances.
- So best usage is to set it within the bootstrap file.
- </para>
- </sect3>
- </sect2>
- <sect2 id="zend.date.values">
- <title>Working with Date Values</title>
- <para>
- Once input has been normalized via the creation of a <classname>Zend_Date</classname> object, it will have an
- associated timezone, but an internal representation using standard
- <ulink url="http://en.wikipedia.org/wiki/Unix_Time">UNIX timestamps</ulink>
- . In order for a date to be rendered in a localized manner, a timezone must be known first. The default
- timezone is always GMT/UTC. To examine an object's timezone use <methodname>getTimeZone())</methodname>. To change an
- object's timezone, use <methodname>setTimeZone())</methodname>. All manipulations of these objects are assumed to be
- relative to this timezone.
- </para>
- <para>
- Beware of mixing and matching operations with date parts between date objects for different timezones, which
- generally produce undesireable results, unless the manipulations are only related to the timestamp.
- Operating on <classname>Zend_Date</classname> objects having different timezones generally works, except as just
- noted, since dates are normalized to UNIX timestamps on instantiation of <classname>Zend_Date</classname>.
- </para>
- <para>
- Most methods expect a constant selecting the desired <methodname>$part</methodname> of a date, such as
- <classname>Zend_Date::HOUR</classname>. These constants are valid for all of the functions below. A list of all
- available constants is provided in
- <xref linkend="zend.date.constants.list" />
- . If no <methodname>$part</methodname> is specified, then <classname>Zend_Date::TIMESTAMP</classname> is assumed. Alternatively, a
- user-specified format may be used for <methodname>$part</methodname>, using the same underlying mechanism and format
- codes as
- <link linkend="zend.locale.date.normalize"><classname>Zend_Locale_Format::getDate()</classname>
- </link>
- . If a date object is constructed using an obviously invalid date (e.g. a month number greater than 12),
- then <classname>Zend_Date</classname> will throw an exception, unless no specific date format has been selected -i.e.
- <methodname>$part</methodname> is either <constant>NULL</constant> or <classname>Zend_Date::DATES</classname> (a "loose" format).
- </para>
- <example id="zend.date.values.example-1">
- <title>User-Specified Input Date Format</title>
- <programlisting language="php"><![CDATA[
- $date1 = new Zend_Date('Feb 31, 2007', null, 'en_US');
- echo $date1, "\n"; // outputs "Mar 3, 2007 12:00:00 AM"
- $date2 = new Zend_Date('Feb 31, 2007', Zend_Date::DATES, 'en_US');
- echo $date2, "\n"; // outputs "Mar 3, 2007 12:00:00 AM"
- // strictly restricts interpretation to specified format
- $date3 = new Zend_Date('Feb 31, 2007', 'MM.dd.yyyy');
- echo $date3, "\n"; // outputs "Mar 3, 2007 12:00:00 AM"
- ]]></programlisting>
- </example>
- <para>
- If the optional <methodname>$locale</methodname> parameter is provided, then the <methodname>$locale</methodname> disambiguates the
- <methodname>$date</methodname> operand by replacing month and weekday names for string <methodname>$date</methodname> operands, and
- even parsing date strings expressed according to the conventions of that locale (see <methodname>
- <link linkend="zend.locale.date.normalize">Zend_Locale_Format::getDate()</link>
- </methodname> ). The automatic normalization of localized <methodname>$date</methodname> operands of a string type occurs when
- <methodname>$part</methodname> is one of the <classname>Zend_Date::DATE*</classname> or <classname>Zend_Date::TIME*</classname> constants.
- The locale identifies which language should be used to parse month names and weekday names, if the
- <methodname>$date</methodname> is a string containing a date. If there is no <methodname>$date</methodname> input parameter, then
- the <methodname>$locale</methodname> parameter specifies the locale to use for localizing output (e.g. the date format
- for a string representation). Note that the <methodname>$date</methodname> input parameter might actually have a type
- name instead (e.g. <methodname>$hour</methodname> for <methodname>addHour()</methodname>), although that does not prevent the use of
- <classname>Zend_Date</classname> objects as arguments for that parameter. If no <methodname>$locale</methodname> was specified,
- then the locale of the current object is used to interpret <methodname>$date</methodname>, or select the localized
- format for output.
- </para>
- <para>
- Since Zend Framework 1.7.0 <classname>Zend_Date</classname> does also support the usage of an application
- wide locale. You can simply set a <classname>Zend_Locale</classname> instance to the registry like shown
- below. With this notation you can forget about setting the locale manually with each instance when
- you want to use the same locale multiple times.
- </para>
- <programlisting language="php"><![CDATA[
- // in your bootstrap file
- $locale = new Zend_Locale('de_AT');
- Zend_Registry::set('Zend_Locale', $locale);
- // somewhere in your application
- $date = new Zend_Date('31.Feb.2007');
- ]]></programlisting>
- </sect2>
- <sect2 id="id.date.basic">
- <title>Basic <classname>Zend_Date</classname> Operations Common to Many Date Parts</title>
- <para>
- The methods <methodname>add(), sub(), compare(), get(), and set()</methodname> operate generically on dates. In each
- case, the operation is performed on the date held in the instance object. The <methodname>$date</methodname> operand is
- required for all of these methods, except <methodname>get()</methodname>, and may be a <classname>Zend_Date</classname> instance
- object, a numeric string, or an integer. These methods assume <methodname>$date</methodname> is a timestamp, if it is
- not an object. However, the <methodname>$part</methodname> operand controls which logical part of the two dates are
- operated on, allowing operations on parts of the object's date, such as year or minute, even when
- <methodname>$date</methodname> contains a long form date string, such as, "December 31, 2007 23:59:59". The result of
- the operation changes the date in the object, except for <methodname>compare()</methodname>, and <methodname>get()</methodname>.
- </para>
- <example id="zend.date.basic.example-1">
- <title>Operating on Parts of Dates</title>
- <programlisting language="php"><![CDATA[
- $date = new Zend_Date(); // $date's timestamp === time()
- // changes $date by adding 12 hours
- $date->add('12', Zend_Date::HOUR);
- print $date;
- ]]></programlisting>
- </example>
- <para>
- Convenience methods exist for each combination of the basic operations and several common date parts as
- shown in the tables below. These convenience methods help us lazy programmers avoid having to type out the
- <link linkend="zend.date.constants.list">date part constants</link>
- when using the general methods above. Conveniently, they are named by combining a prefix (name of a basic
- operation) with a suffix (type of date part), such as <methodname>addYear()</methodname>. In the list below, all
- combinations of "Date Parts" and "Basic Operations" exist. For example, the operation "add" exists for each
- of these date parts, including <methodname>addDay()</methodname>, <methodname>addYear()</methodname>, etc.
- </para>
- <para>
- These convenience methods have the same equivalent functionality as the basic operation methods, but expect
- string and integer <methodname>$date</methodname> operands containing only the values representing the type indicated by
- the suffix of the convenience method. Thus, the names of these methods (e.g. "Year" or "Minute") identify
- the units of the <methodname>$date</methodname> operand, when <methodname>$date</methodname> is a string or integer.
- </para>
- <sect3 id="id.date.basic.parts">
- <title>List of Date Parts</title>
- <table id="id.date.basic.parts.table">
- <title>Date Parts</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Date Part</entry>
- <entry>Explanation</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/Unix_Time">Timestamp</ulink>
- </entry>
- <entry>
- UNIX timestamp, expressed in seconds elapsed since January 1st, 1970 00:00:00 GMT/UTC.
- </entry>
- </row>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/Gregorian_calendar">Year</ulink>
- </entry>
- <entry>Gregorian calendar year (e.g. 2006)</entry>
- </row>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/Month#Julian_and_Gregorian_calendars">Month</ulink>
- </entry>
- <entry>Gregorian calendar month (1-12, localized names supported)</entry>
- </row>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/24-hour_clock">24 hour clock</ulink>
- </entry>
- <entry>Hours of the day (0-23) denote the hours elapsed, since the start of the day.</entry>
- </row>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/Minute">minute</ulink>
- </entry>
- <entry>Minutes of the hour (0-59) denote minutes elapsed, since the start of the hour.</entry>
- </row>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/Second">Second</ulink>
- </entry>
- <entry>Seconds of the minute (0-59) denote the elapsed seconds, since the start of the minute.</entry>
- </row>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/Millisecond">millisecond</ulink>
- </entry>
- <entry>Milliseconds denote thousandths of a second (0-999). <classname>Zend_Date</classname> supports two additional methods for working with time units smaller than seconds. By default, <classname>Zend_Date</classname> instances use a precision defaulting to milliseconds, as seen using <methodname>getFractionalPrecision()</methodname>. To change the precision use <methodname>setFractionalPrecision($precision)</methodname>. However, precision is limited practically to microseconds, since <classname>Zend_Date</classname> uses <methodname>
- <ulink url="http://php.net/microtime">microtime()</ulink></methodname>.</entry>
- </row>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/Day">Day</ulink>
- </entry>
- <entry><classname>Zend_Date::DAY_SHORT</classname> is extracted from <methodname>$date</methodname> if the <methodname>$date</methodname> operand is an instance of <classname>Zend_Date</classname> or a numeric string. Otherwise, an attempt is made to extract the day according to the conventions documented for these constants: <classname>Zend_Date::WEEKDAY_NARROW</classname>, <classname>Zend_Date::WEEKDAY_NAME</classname>, <classname>Zend_Date::WEEKDAY_SHORT</classname>, <classname>Zend_Date::WEEKDAY</classname> (Gregorian calendar assumed)</entry>
- </row>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/Week">Week</ulink>
- </entry>
- <entry><classname>Zend_Date::WEEK</classname> is extracted from <methodname>$date</methodname> if the <methodname>$date</methodname> operand is an instance of <classname>Zend_Date</classname> or a numeric string. Otherwise an exception is raised. (Gregorian calendar assumed)</entry>
- </row>
- <row>
- <entry>Date</entry>
- <entry><classname>Zend_Date::DAY_MEDIUM</classname> is extracted from <methodname>$date</methodname> if the <methodname>$date</methodname> operand is an instance of <classname>Zend_Date</classname>. Otherwise, an attempt is made to normalize the <methodname>$date</methodname> string into a Zend_Date::DATE_MEDIUM formatted date. The format of <classname>Zend_Date::DAY_MEDIUM</classname> depends on the object's locale.</entry>
- </row>
- <row>
- <entry>Weekday</entry>
- <entry>Weekdays are represented numerically as 0 (for Sunday) through 6 (for Saturday). <classname>Zend_Date::WEEKDAY_DIGIT</classname> is extracted from <methodname>$date</methodname>, if the <methodname>$date</methodname> operand is an instance of <classname>Zend_Date</classname> or a numeric string. Otherwise, an attempt is made to extract the day according to the conventions documented for these constants: <classname>Zend_Date::WEEKDAY_NARROW</classname>, <classname>Zend_Date::WEEKDAY_NAME</classname>, <classname>Zend_Date::WEEKDAY_SHORT</classname>, <classname>Zend_Date::WEEKDAY</classname> (Gregorian calendar assumed)</entry>
- </row>
- <row>
- <entry>DayOfYear</entry>
- <entry>In <classname>Zend_Date</classname>, the day of the year represents the number of calendar days elapsed since the start of the year (0-365). As with other units above, fractions are rounded down to the nearest whole number. (Gregorian calendar assumed)
- </entry>
- </row>
- <row>
- <entry>
- <ulink url="http://www.faqs.org/rfcs/rfc822.html">Arpa</ulink>
- </entry>
- <entry>Arpa dates (i.e. RFC 822 formatted dates) are supported. Output uses either a "GMT" or "Local differential hours+min" format (see section 5 of RFC 822). Before PHP 5.2.2, using the DATE_RFC822 constant with PHP date functions sometimes produces <ulink url="http://bugs.php.net/bug.php?id=40308">incorrect results</ulink>. Zend_Date's results are correct. Example: <methodname>Mon, 31 Dec 06 23:59:59 GMT</methodname>
- </entry>
- </row>
- <row>
- <entry>
- <ulink url="http://en.wikipedia.org/wiki/ISO_8601">Iso</ulink>
- </entry>
- <entry>Only complete ISO 8601 dates are supported for output. Example: <methodname>2009-02-14T00:31:30+01:00</methodname>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect3>
- <sect3 id="id.date.basic.operations">
- <title>List of Date Operations</title>
- <para>
- The basic operations below can be used instead of the convenience operations for specific date parts, if
- the
- <link linkend="zend.date.constants.list">appropriate constant</link>
- is used for the <methodname>$part</methodname> parameter.
- </para>
- <table id="id.date.basic.operations.table">
- <title>Basic Operations</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Basic Operation</entry>
- <entry>Explanation</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>get()</entry>
- <entry>
- <para>
- <emphasis>get($part = null, $locale = null)</emphasis>
- </para>
- <para>
- Use <methodname>get($part)</methodname> to retrieve the date <methodname>$part</methodname> of this object's
- date localized to <methodname>$locale</methodname> as a formatted string or integer. When using
- the BCMath extension, numeric strings might be returned instead of integers for
- large values. <emphasis>NOTE:</emphasis> Unlike <methodname>get()</methodname>,
- the other get*() convenience methods only return instances of <classname>Zend_Date</classname>
- containing a date representing the selected or computed date/time.
- </para>
- </entry>
- </row>
- <row>
- <entry>set()</entry>
- <entry>
- <para>
- <emphasis>set($date, $part = null, $locale = null)</emphasis>
- </para>
- <para>
- Sets the <methodname>$part</methodname> of the current object to the corresponding value for
- that part found in the input <methodname>$date</methodname> having a locale
- <methodname>$locale</methodname>.
- </para>
- </entry>
- </row>
- <row>
- <entry>add()</entry>
- <entry>
- <para>
- <emphasis>add($date, $part = null, $locale = null)</emphasis>
- </para>
- <para>
- Adds the <methodname>$part</methodname> of <methodname>$date</methodname> having a locale
- <methodname>$locale</methodname> to the current object's date.
- </para>
- </entry>
- </row>
- <row>
- <entry>sub()</entry>
- <entry>
- <para>
- <emphasis>sub($date, $part = null, $locale = null)</emphasis>
- </para>
- <para>
- Subtracts the <methodname>$part</methodname> of <methodname>$date</methodname> having a locale
- <methodname>$locale</methodname> from the current object's date.
- </para>
- </entry>
- </row>
- <row>
- <entry>copyPart()</entry>
- <entry>
- <para>
- <emphasis>copyPart($part, $locale = null)</emphasis>
- </para>
- <para>
- Returns a cloned object, with only <methodname>$part</methodname> of the object's date copied to
- the clone, with the clone have its locale arbitrarily set to <methodname>$locale</methodname>
- (if specified).
- </para>
- </entry>
- </row>
- <row>
- <entry>compare()</entry>
- <entry>
- <para>
- <emphasis>compare($date, $part = null, $locale = null)</emphasis>
- </para>
- <para>
- compares <methodname>$part</methodname> of <methodname>$date</methodname> to this object's timestamp,
- returning 0 if they are equal, 1 if this object's part was more recent than $date's
- part, otherwise -1.
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect3>
- </sect2>
- <sect2 id="zend.date.others.comparison">
- <title>Comparing Dates</title>
- <para>
- The following basic operations do not have corresponding convenience methods for the date parts listed in
- <xref linkend="zend.date.overview" />
- .
- </para>
- <table id="zend.date.others.comparison.table">
- <title>Date Comparison Methods</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Method</entry>
- <entry>Explanation</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>equals()</entry>
- <entry>
- <para>
- <emphasis>equals($date, $part = null, $locale = null)</emphasis>
- </para>
- <para>
- returns true, if <methodname>$part</methodname> of <methodname>$date</methodname> having locale
- <methodname>$locale</methodname> is the same as this object's date <methodname>$part</methodname>, otherwise
- false
- </para>
- </entry>
- </row>
- <row>
- <entry>isEarlier()</entry>
- <entry>
- <para>
- <emphasis>isEarlier($date, $part = null, $locale = null)</emphasis>
- </para>
- <para>
- returns true, if <methodname>$part</methodname> of this object's date is earlier than
- <methodname>$part</methodname> of <methodname>$date</methodname> having a locale <methodname>$locale</methodname>
- </para>
- </entry>
- </row>
- <row>
- <entry>isLater()</entry>
- <entry>
- <para>
- <emphasis>isLater($date, $part = null, $locale = null)</emphasis>
- </para>
- <para>
- returns true, if <methodname>$part</methodname> of this object's date is later than
- <methodname>$part</methodname> of <methodname>$date</methodname> having a locale <methodname>$locale</methodname>
- </para>
- </entry>
- </row>
- <row>
- <entry>isToday()</entry>
- <entry>
- <para>
- <emphasis>isToday()</emphasis>
- </para>
- <para>
- Tests if today's year, month, and day match this object's date value, using this
- object's timezone.
- </para>
- </entry>
- </row>
- <row>
- <entry>isTomorrow()</entry>
- <entry>
- <para>
- <emphasis>isTomorrow()</emphasis>
- </para>
- <para>
- Tests if tomorrow's year, month, and day match this object's date value, using this
- object's timezone.
- </para>
- </entry>
- </row>
- <row>
- <entry>isYesterday()</entry>
- <entry>
- <para>
- <emphasis>isYesterday()</emphasis>
- </para>
- <para>
- Tests if yesterday's year, month, and day match this object's date value, using this
- object's timezone.
- </para>
- </entry>
- </row>
- <row>
- <entry>isLeapYear()</entry>
- <entry>
- <para>
- <emphasis>isLeapYear()</emphasis>
- </para>
- <para>
- Use <methodname>isLeapYear()</methodname> to determine if the current object is a leap year, or use
- Zend_Date::checkLeapYear($year) to check $year, which can be a string, integer, or
- instance of <classname>Zend_Date</classname>. Is the year a leap year?
- </para>
- </entry>
- </row>
- <row>
- <entry>isDate()</entry>
- <entry>
- <para>
- <emphasis>isDate($date, $format = null, $locale = null)</emphasis>
- </para>
- <para>
- This method checks if a given date is a real date and returns true if all checks are ok.
- It works like PHP's checkdate() function but can also check for localized month names and
- for dates extending the range of checkdate()
- false
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect2>
- <sect2 id="zend.date.others.gettingparts">
- <title>Getting Dates and Date Parts</title>
- <para>
- Several methods support retrieving values related to a <classname>Zend_Date</classname> instance.
- </para>
- <table id="zend.date.others.gettingparts.table">
- <title>Date Output Methods</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Method</entry>
- <entry>Explanation</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>toString()</entry>
- <entry>
- <para>
- <emphasis>toString($format = null, $locale = null)</emphasis>
- </para>
- <para>
- Invoke directly or via the magic method <methodname>__toString()</methodname>. The
- <methodname>toString()</methodname> method automatically formats the date object's value according
- to the conventions of the object's locale, or an optionally specified
- <methodname>$locale</methodname>. For a list of supported format codes, see
- <xref linkend="zend.date.constants.selfdefinedformats" />
- .
- </para>
- </entry>
- </row>
- <row>
- <entry>toArray()</entry>
- <entry>
- <para>
- <emphasis>toArray()</emphasis>
- </para>
- <para>
- Returns an array representation of the selected date according to
- the conventions of the object's locale. The returned array is equivalent to
- PHP's <ulink url="http://php.net/getdate">getdate()</ulink> function and includes:
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <para>
- Number of day as '<emphasis>day</emphasis>'
- (<classname>Zend_Date::DAY_SHORT</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Number of month as '<emphasis>month</emphasis>'
- (<classname>Zend_Date::MONTH_SHORT</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Year as '<emphasis>year</emphasis>'
- (<classname>Zend_Date::YEAR</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Hour as '<emphasis>hour</emphasis>'
- (<classname>Zend_Date::HOUR_SHORT</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Minute as '<emphasis>minute</emphasis>'
- (<classname>Zend_Date::MINUTE_SHORT</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Second as '<emphasis>second</emphasis>'
- (<classname>Zend_Date::SECOND_SHORT</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Abbreviated timezone as '<emphasis>timezone</emphasis>'
- (<classname>Zend_Date::TIMEZONE</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Unix timestamp as '<emphasis>timestamp</emphasis>'
- (<classname>Zend_Date::TIMESTAMP</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Number of weekday as '<emphasis>weekday</emphasis>'
- (<classname>Zend_Date::WEEKDAY_DIGIT</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Day of year as '<emphasis>dayofyear</emphasis>'
- (<classname>Zend_Date::DAY_OF_YEAR</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Week as '<emphasis>week</emphasis>'
- (<classname>Zend_Date::WEEK</classname>)
- </para>
- </listitem>
- <listitem>
- <para>
- Delay of timezone to GMT as
- '<emphasis>gmtsecs</emphasis>'
- (<classname>Zend_Date::GMT_SECS</classname>)
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </entry>
- </row>
- <row>
- <entry>toValue()</entry>
- <entry>
- <para>
- <emphasis>toValue($part = null)</emphasis>
- </para>
- <para>
- Returns an integer representation of the selected date <methodname>$part</methodname> according to
- the conventions of the object's locale. Returns <methodname>false</methodname> when
- <methodname>$part</methodname> selects a non-numeric value, such as
- <classname>Zend_Date::MONTH_NAME_SHORT</classname>. <emphasis>NOTE:</emphasis> This
- method calls
- <link linkend="id.date.basic.operations"><methodname>get()</methodname>
- </link>
- and casts the result to a PHP integer, which will give unpredictable results, if
- <methodname>get()</methodname> returns a numeric string containing a number too large for a PHP
- integer on your system. Use <methodname>get()</methodname> instead.
- </para>
- </entry>
- </row>
- <row>
- <entry>
- <link linkend="id.date.basic.operations">get()</link>
- </entry>
- <entry>
- <para>
- <emphasis>get($part = null, $locale = null)</emphasis>
- </para>
- <para>
- This method returns the <methodname>$part</methodname> of object's date localized to
- <methodname>$locale</methodname> as a formatted string or integer. See
- <xref linkend="id.date.basic.operations" />
- for more information.
- </para>
- </entry>
- </row>
- <row>
- <entry>now()</entry>
- <entry>
- <para>
- <emphasis>now($locale = null)</emphasis>
- </para>
- <para>
- This convenience function is equivalent to <methodname>new Zend_Date()</methodname>. It returns the
- current date as a <classname>Zend_Date</classname> object, having <methodname>$locale</methodname>
- </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect2>
- <sect2 id="zend.date.others.fractions">
- <title>Working with Fractions of Seconds</title>
- <para>
- Several methods support retrieving values related to a <classname>Zend_Date</classname> instance.
- </para>
- <table id="zend.date.others.fractions.table">
- <title>Date Output Methods</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Method</entry>
- <entry>Explanation</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>
- <emphasis>getFractionalPrecision()</emphasis>
- </para>
- </entry>
- <entry>Return the precision of the part seconds</entry>
- </row>
- <row>
- <entry>
- <para>
- <emphasis>setFractionalPrecision()</emphasis>
- </para>
- </entry>
- <entry>Set the precision of the part seconds</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect2>
- <sect2 id="zend.date.other.sun">
- <title>Sunrise / Sunset</title>
- <para>
- Three methods provide access to geographically localized information about the Sun, including the time of
- sunrise and sunset.
- </para>
- <table id="zend.date.other.sun.table">
- <title>Miscellaneous Methods</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Method</entry>
- <entry>Explanation</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <para>
- <emphasis>getSunrise($location)</emphasis>
- </para>
- </entry>
- <entry>Return the date's time of sunrise</entry>
- </row>
- <row>
- <entry>
- <para>
- <emphasis>getSunset($location)</emphasis>
- </para>
- </entry>
- <entry>Return the date's time of sunset</entry>
- </row>
- <row>
- <entry>
- <para>
- <emphasis>getSunInfo($location)</emphasis>
- </para>
- </entry>
- <entry>Return an array with the date's sun dates</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|