mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-19 10:28:54 +00:00

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@40217 c90b9560-bf6c-de11-be94-00142212c4b1
557 lines
17 KiB
XML
557 lines
17 KiB
XML
<reference id="ref.calendar">
|
|
<title>Calendar functions</title>
|
|
<titleabbrev>Calendar</titleabbrev>
|
|
|
|
<partintro>
|
|
<para>
|
|
The calendar functions are only available if you have compiled
|
|
the calendar extension, found in either the "dl" or "ext"
|
|
subdirectories of your PHP source code.
|
|
Please see the README file before using it.
|
|
</para>
|
|
<para>
|
|
The calendar extension presents a series of functions to simplify
|
|
converting between different calendar formats. The intermediary
|
|
or standard it is based on is the Julian Day Count. The Julian
|
|
Day Count is a count of days starting way earlier than any date
|
|
most people would need to track (somewhere around 4000bc). To
|
|
convert between calendar systems, you must first convert to Julian
|
|
Day Count, then to the calendar system of your choice. Julian Day
|
|
Count is very different from the Julian Calendar! For more
|
|
information on calendar systems visit <ulink
|
|
url="&url.calendar;">&url.calendar;</ulink>. Excerpts from this
|
|
page are included in these instructions, and are in quotes.
|
|
</para>
|
|
</partintro>
|
|
|
|
<refentry id="function.jdtogregorian">
|
|
<refnamediv>
|
|
<refname>JDToGregorian</refname>
|
|
<refpurpose>Converts Julian Day Count to Gregorian date</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>string <function>jdtogregorian</function></funcdef>
|
|
<paramdef>int <parameter>julianday</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Converts Julian Day Count to a string containing the Gregorian
|
|
date in the format of "month/day/year".
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.gregoriantojd">
|
|
<refnamediv>
|
|
<refname>GregorianToJD</refname>
|
|
<refpurpose>
|
|
Converts a Gregorian date to Julian Day Count
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>int <function>gregoriantojd</function></funcdef>
|
|
<paramdef>int <parameter>month</parameter></paramdef>
|
|
<paramdef>int <parameter>day</parameter></paramdef>
|
|
<paramdef>int <parameter>year</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Valid Range for Gregorian Calendar 4714 B.C. to 9999 A.D.</para>
|
|
<para>
|
|
Although this software can handle dates all the way back to 4714
|
|
B.C., such use may not be meaningful. The Gregorian calendar was
|
|
not instituted until October 15, 1582 (or October 5, 1582 in the
|
|
Julian calendar). Some countries did not accept it until much
|
|
later. For example, Britain converted in 1752, The USSR in 1918
|
|
and Greece in 1923. Most European countries used the Julian
|
|
calendar prior to the Gregorian.
|
|
<example>
|
|
<title>Calendar functions</title>
|
|
<programlisting role="php">
|
|
<?php
|
|
$jd = GregorianToJD (10,11,1970);
|
|
echo "$jd\n";
|
|
$gregorian = JDToGregorian ($jd);
|
|
echo "$gregorian\n";
|
|
?>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.jdtojulian">
|
|
<refnamediv>
|
|
<refname>JDToJulian</refname>
|
|
<refpurpose>
|
|
Converts a Julian Day Count to a Julian Calendar Date
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>string <function>jdtojulian</function></funcdef>
|
|
<paramdef>int <parameter>julianday</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Converts Julian Day Count to a string containing the Julian
|
|
Calendar Date in the format of "month/day/year".
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.juliantojd">
|
|
<refnamediv>
|
|
<refname>JulianToJD</refname>
|
|
<refpurpose>
|
|
Converts a Julian Calendar date to Julian Day Count
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>int <function>juliantojd</function></funcdef>
|
|
<paramdef>int <parameter>month</parameter></paramdef>
|
|
<paramdef>int <parameter>day</parameter></paramdef>
|
|
<paramdef>int <parameter>year</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Valid Range for Julian Calendar 4713 B.C. to 9999 A.D.
|
|
</para>
|
|
<para>
|
|
Although this software can handle dates all the way back to 4713
|
|
B.C., such use may not be meaningful. The calendar was created in
|
|
46 B.C., but the details did not stabilize until at least 8 A.D.,
|
|
and perhaps as late at the 4th century. Also, the beginning of a
|
|
year varied from one culture to another - not all accepted
|
|
January as the first month.
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.jdtojewish">
|
|
<refnamediv>
|
|
<refname>JDToJewish</refname>
|
|
<refpurpose>
|
|
Converts a Julian Day Count to the Jewish Calendar
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>string <function>jdtojewish</function></funcdef>
|
|
<paramdef>int <parameter>julianday</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Converts a Julian Day Count the the Jewish Calendar.
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.jewishtojd">
|
|
<refnamediv>
|
|
<refname>JewishToJD</refname>
|
|
<refpurpose>
|
|
Converts a date in the Jewish Calendar to Julian Day Count
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>int <function>jewishtojd</function></funcdef>
|
|
<paramdef>int <parameter>month</parameter></paramdef>
|
|
<paramdef>int <parameter>day</parameter></paramdef>
|
|
<paramdef>int <parameter>year</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Valid Range Although this software can handle dates all the way
|
|
back to the year 1 (3761 B.C.), such use may not be meaningful.
|
|
</para>
|
|
<para>
|
|
The Jewish calendar has been in use for several thousand years,
|
|
but in the early days there was no formula to determine the start
|
|
of a month. A new month was started when the new moon was first
|
|
observed.
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.jdtofrench">
|
|
<refnamediv>
|
|
<refname>JDToFrench</refname>
|
|
<refpurpose>
|
|
Converts a Julian Day Count to the French Republican Calendar
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>string <function>jdtofrench</function></funcdef>
|
|
<paramdef>int <parameter>juliandaycount</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Converts a Julian Day Count to the French Republican Calendar.
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.frenchtojd">
|
|
<refnamediv>
|
|
<refname>FrenchToJD</refname>
|
|
<refpurpose>
|
|
Converts a date from the French Republican Calendar to a Julian
|
|
Day Count
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>int <function>frenchtojd</function></funcdef>
|
|
<paramdef>int <parameter>month</parameter></paramdef>
|
|
<paramdef>int <parameter>day</parameter></paramdef>
|
|
<paramdef>int <parameter>year</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Converts a date from the French Republican Calendar to a Julian
|
|
Day Count.
|
|
</para>
|
|
<para>
|
|
These routines only convert dates in years 1 through 14
|
|
(Gregorian dates 22 September 1792 through 22 September
|
|
1806). This more than covers the period when the calendar was in
|
|
use.
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.jdmonthname">
|
|
<refnamediv>
|
|
<refname>JDMonthName</refname>
|
|
<refpurpose>Returns a month name</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>string <function>jdmonthname</function></funcdef>
|
|
<paramdef>int <parameter>julianday</parameter></paramdef>
|
|
<paramdef>int <parameter>mode</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Returns a string containing a month name.
|
|
<parameter>mode</parameter> tells this function which calendar to
|
|
convert the Julian Day Count to, and what type of month names are
|
|
to be returned.
|
|
<table>
|
|
<title>Calendar modes</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Mode</entry>
|
|
<entry>Meaning</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>0</entry>
|
|
<entry>Gregorian - abbreviated</entry>
|
|
</row>
|
|
<row>
|
|
<entry>1</entry>
|
|
<entry>Gregorian</entry>
|
|
</row>
|
|
<row>
|
|
<entry>2</entry>
|
|
<entry>Julian - abbreviated</entry>
|
|
</row>
|
|
<row>
|
|
<entry>3</entry>
|
|
<entry>Julian</entry>
|
|
</row>
|
|
<row>
|
|
<entry>4</entry>
|
|
<entry>Jewish</entry>
|
|
</row>
|
|
<row>
|
|
<entry>5</entry>
|
|
<entry>French Republican</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.jddayofweek">
|
|
<refnamediv>
|
|
<refname>JDDayOfWeek</refname>
|
|
<refpurpose>Returns the day of the week</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>mixed <function>jddayofweek</function></funcdef>
|
|
<paramdef>int <parameter>julianday</parameter></paramdef>
|
|
<paramdef>int <parameter>mode</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Returns the day of the week. Can return a string or an int
|
|
depending on the mode.
|
|
<table>
|
|
<title>Calendar week modes</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Mode</entry>
|
|
<entry>Meaning</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>0</entry>
|
|
<entry>
|
|
Returns the day number as an int (0=sunday, 1=monday, etc)
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>1</entry>
|
|
<entry>
|
|
Returns string containing the day of week
|
|
(english-gregorian)
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>2</entry>
|
|
<entry>
|
|
Returns a string containing the abbreviated day of week
|
|
(english-gregorian)
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.easter-date">
|
|
<refnamediv>
|
|
<refname>easter_date</refname>
|
|
<refpurpose>
|
|
Get UNIX timestamp for midnight on Easter of a given year
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>int <function>easter_date</function></funcdef>
|
|
<paramdef>int <parameter>year</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Returns the UNIX timestamp corresponding to midnight on Easter of
|
|
the given year. If no year is specified, the current year is
|
|
assumed.
|
|
</para>
|
|
<para>
|
|
<emphasis>Warning:</emphasis> This function will generate
|
|
a warning if the year is outside of the range for UNIX
|
|
timestamps (i.e. before 1970 or after 2037).
|
|
<example>
|
|
<title><function>easter_date</function> example</title>
|
|
<programlisting role="php">
|
|
echo date ("M-d-Y", easter_date(1999)); /* "Apr-04-1999" */
|
|
echo date ("M-d-Y", easter_date(2000)); /* "Apr-23-2000" */
|
|
echo date ("M-d-Y", easter_date(2001)); /* "Apr-15-2001" */
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
The date of Easter Day was defined by the Council of Nicaea in
|
|
AD325 as the Sunday after the first full moon which falls on or
|
|
after the Spring Equinox. The Equinox is assumed to always fall
|
|
on 21st March, so the calculation reduces to determining the date
|
|
of the full moon and the date of the following Sunday. The
|
|
algorithm used here was introduced around the year 532 by
|
|
Dionysius Exiguus. Under the Julian Calendar (for years before
|
|
1753) a simple 19-year cycle is used to track the phases of the
|
|
Moon. Under the Gregorian Calendar (for years after 1753 -
|
|
devised by Clavius and Lilius, and introduced by Pope Gregory
|
|
XIII in October 1582, and into Britain and its then colonies in
|
|
September 1752) two correction factors are added to make the
|
|
cycle more accurate.
|
|
</para>
|
|
<para>
|
|
(The code is based on a C program by Simon Kershaw,
|
|
<webmaster@ely.anglican.org>)
|
|
</para>
|
|
<para>
|
|
See <function>easter_days</function> for calculating Easter
|
|
before 1970 or after 2037.
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.easter-days">
|
|
<refnamediv>
|
|
<refname>easter_days</refname>
|
|
<refpurpose>
|
|
Get number of days after March 21 on which Easter falls for a
|
|
given year
|
|
</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>int <function>easter_days</function></funcdef>
|
|
<paramdef>int <parameter>year</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Returns the number of days after March 21 on which Easter falls
|
|
for a given year. If no year is specified, the current year is
|
|
assumed.
|
|
</para>
|
|
<para>
|
|
This function can be used instead of
|
|
<function>easter_date</function> to calculate Easter for years
|
|
which fall outside the range of UNIX timestamps (i.e. before 1970
|
|
or after 2037).
|
|
<example>
|
|
<title><function>Easter_days</function> example</title>
|
|
<programlisting role="php">
|
|
echo easter_days (1999); /* 14, i.e. April 4 */
|
|
echo easter_days (1492); /* 32, i.e. April 22 */
|
|
echo easter_days (1913); /* 2, i.e. March 23 */
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
<para>
|
|
The date of Easter Day was defined by the Council of Nicaea in
|
|
AD325 as the Sunday after the first full moon which falls on or
|
|
after the Spring Equinox. The Equinox is assumed to always fall
|
|
on 21st March, so the calculation reduces to determining the date
|
|
of the full moon and the date of the following Sunday. The
|
|
algorithm used here was introduced around the year 532 by
|
|
Dionysius Exiguus. Under the Julian Calendar (for years before
|
|
1753) a simple 19-year cycle is used to track the phases of the
|
|
Moon. Under the Gregorian Calendar (for years after 1753 -
|
|
devised by Clavius and Lilius, and introduced by Pope Gregory
|
|
XIII in October 1582, and into Britain and its then colonies in
|
|
September 1752) two correction factors are added to make the
|
|
cycle more accurate.
|
|
</para>
|
|
<para>
|
|
(The code is based on a C program by Simon Kershaw,
|
|
<webmaster@ely.anglican.org>)
|
|
</para>
|
|
<para>
|
|
See also <function>easter_date</function>.
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.unixtojd">
|
|
<refnamediv>
|
|
<refname>unixtojd</refname>
|
|
<refpurpose>Convert UNIX timestamp to Julian Day</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>int <function>unixtojd</function></funcdef>
|
|
<paramdef>int
|
|
<parameter><optional>timestamp</optional></parameter>
|
|
</paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
Return the Julian Day for a UNIX <parameter>timestamp</parameter>
|
|
(seconds since 1.1.1970), or for the current day if no
|
|
<parameter>timestamp</parameter> is given.
|
|
</para>
|
|
<para>
|
|
See also <function>jdtounix</function>.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
This function is only available in PHP versions after PHP 4RC1.
|
|
</para>
|
|
</note>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<refentry id="function.jdtounix">
|
|
<refnamediv>
|
|
<refname>jdtounix</refname>
|
|
<refpurpose>Convert Julian Day to UNIX timestamp</refpurpose>
|
|
</refnamediv>
|
|
<refsect1>
|
|
<title>Description</title>
|
|
<funcsynopsis>
|
|
<funcprototype>
|
|
<funcdef>int <function>jdtounix</function></funcdef>
|
|
<paramdef>int <parameter>jday</parameter></paramdef>
|
|
</funcprototype>
|
|
</funcsynopsis>
|
|
<para>
|
|
This function will return a UNIX timestamp corresponding to the
|
|
Julian Day given in <parameter>jday</parameter> or false if
|
|
<parameter>jday</parameter> is not inside the UNIX epoch
|
|
(Gregorian years between 1970 and 2037 or 2440588 <=
|
|
<parameter>jday</parameter> <= 2465342 )
|
|
</para>
|
|
<para>
|
|
See also <function>jdtounix</function>.
|
|
</para>
|
|
<note>
|
|
<para>
|
|
This function is only available in PHP versions after PHP 4RC1.
|
|
</para>
|
|
</note>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
</reference>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"../../manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
-->
|