Ref/calendar-Phpdoc专题
cal_days_in_month
返回某个历法中某年中某月的天数
说明
int <span
class="methodname">cal_days_in_month ( <span
class="methodparam">int $calendar ,
int $month
, int $year
)
该函数返回特定历法中的某年中的某月的天数。
参数
calendar
用来计算的某个历法
month
选定历法中的某月
year
选定历法中的某年
返回值
指定历法中选定的某月的天数。
范例
示例 #1 cal_days_in_month example
<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There was $num days in August 2003";
?>
cal_from_jd
转换Julian Day计数到一个支持的历法。
说明
array <span
class="methodname">cal_from_jd ( <span
class="methodparam">int $jd , <span
class="methodparam">int $calendar )
cal_from_jd函数根据给定的Julian
day的jd
天数转换成特定历法calendar中的日期。calendar支持的值有CAL_GREGORIAN,CAL_JULIAN,CAL_JEWISH
和CAL_FRENCH。
参数
jd
一个Julian day天数的整数数字
calendar
要转换成的历法
返回值
返回一个数组,包含的历法信息有月,日,年,星期,星期的缩写和全写,月份的缩写和全写,日期的形式是“月/日/年”。
范例
示例 #1 cal_from_jd example
<?php
$today = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($today, CAL_GREGORIAN));
?>
以上例程会输出:
Array
(
[date] => 8/16/2003
[month] => 8
[day] => 16
[year] => 2003
[dow] => 6
[abbrevdayname] => Sat
[dayname] => Saturday
[abbrevmonth] => Aug
[monthname] => August
)
参见
- cal_to_jd
- jdtofrench
- jdtogregorian
- jdtojewish
- jdtojulian
- jdtounix
cal_info
返回选定历法的信息
说明
array <span
class="methodname">cal_info ([ <span
class="type">int $calendar =
-1 ] )
cal_info返回选定 calendar的作息。
历法信息以一个数组的形式返回,包含的元素有历法名称,历法代码,月份,月份的缩写和单月的最多天数。作为参数的calendar历法名字可以有:
- 0 or
CAL_GREGORIAN- Gregorian Calendar - 1 or
CAL_JULIAN- Julian Calendar - 2 or
CAL_JEWISH- Jewish Calendar - 3 or
CAL_FRENCH- French Revolutionary Calendar
如果没有指定参数calendar,所支持的所有历法将以数组形式返回。
参数
calendar
返回信息所指定的历法名称,如果没有指定历法,将返回所有历法。
返回值
更新日志
| 版本 | 说明 |
|---|---|
| Since 5.0 | 参数calendar作为可选项,缺省时默认值为"所有历法"。 |
范例
示例 #1 cal_info example
<?php
$info = cal_info(0);
print_r($info);
?>
以上例程会输出:
Array
(
[months] => Array
(
[1] => January
[2] => February
[3] => March
[4] => April
[5] => May
[6] => June
[7] => July
[8] => August
[9] => September
[10] => October
[11] => November
[12] => December
)
[abbrevmonths] => Array
(
[1] => Jan
[2] => Feb
[3] => Mar
[4] => Apr
[5] => May
[6] => Jun
[7] => Jul
[8] => Aug
[9] => Sep
[10] => Oct
[11] => Nov
[12] => Dec
)
[maxdaysinmonth] => 31
[calname] => Gregorian
[calsymbol] => CAL_GREGORIAN
)
cal_to_jd
从一个支持的历法转变为Julian Day计数。
说明
int <span
class="methodname">cal_to_jd ( <span
class="type">int $calendar , <span
class="methodparam">int $month ,
int $day ,
int $year )
<span
class="function">cal_to_jd函数从一个给定的历法日期计算出Julian天数,支持的历法有
CAL_GREGORIAN,CAL_JULIAN,CAL_JEWISH和CAL_FRENCH。
参数
calendar
选定的历法,可以是CAL_GREGORIAN,CAL_JULIAN,CAL_JEWISH或CAL_FRENCH中的某一个。
month
数字形式的月份,根据选定的calendar历法来确定范围。
day
数字形式的日期,根据选定的calendar历法来确定范围。
year
数字形式的年份,根据选定的calendar历法来确定范围。
返回值
一个Julian天数。
参见
- cal_from_jd
- frenchtojd
- gregoriantojd
- jewishtojd
- juliantojd
- unixtojd
easter_date
得到指定年份的复活节午夜时的Unix时间戳。
说明
int <span
class="methodname">easter_date ([ <span
class="methodparam">int $year ] )
返回指定年份的复活节午夜时的Unix时间戳。
Warning
如果给定的年份超出Unix时间戳的范围(比如1970年以前或2037年以后),该函数将返回一个警告。
复活节的日期是由尼西亚议会在AD325年确定的为每年春分月圆后的第一个星期日。春分一般是在3月21日,这就简化为只要计算满月的日期和紧挨的星期日的日期。这里所用的算法是在532年由Dionysius Exiguus所介绍的,参考了Julian历法和Gregorian历法这两个历法来提高精确度。(在1753年以前用Julian历法计算,该历法是一个以19年为周期来确定月亮的相位的历法。在1753年以后用Gregorian历法计算,该历法由Clavius和Lilius发明,由Pope Gregory 8世在1582年推广)
参数
year
1970年至2037年之间的数字形式的年份。
返回值
复活节日期的Unix时间戳。
更新日志
| 版本 | 说明 |
|---|---|
| Since 4.3.0 | year参数可选,缺省的默认值是当年。 |
范例
示例 #1 easter_date example
<?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
?>
参见
- easter_days for calculating Easter before 1970 or after 2037
easter_days
得到指定年份的3月21日到复活节之间的天数
说明
int <span
class="methodname">easter_days ([ <span
class="methodparam">int $year [,
int $method<span
class="initializer"> = CAL_EASTER_DEFAULT ]] )
返回指定年份的3月21日到复活节之间的天数,如果没有指定年份,默认是当年。
这个函数可以用来代替<span class="function">easter_date函数来计算Unix时间戳以外年份的复活节日期。(比如1970年以前或2037年以后)
复活节的日期是由尼西亚议会在AD325年确定的为每年春分月圆后的第一个星期日。春分一般是在3月21日,这就简化为只要计算满月的日期和紧挨的星期日的日期。这里所用的算法是在532年由Dionysius Exiguus所介绍的,参考了Julian历法和Gregorian历法这两个历法来提高精确度。(在1753年以前用Julian历法计算,该历法是一个以19年为周期来确定月亮的相位的历法。在1753年以后用Gregorian历法计算,该历法由Clavius和Lilius发明,由Pope Gregory 8世在1582年推广)
参数
year
正数形式的年份
method
当设置为CAL_EASTER_ROMAN时可以用Gregorian历法来计算1582-1752之间的复活节日期。更多可用的常量参考calendar constants。
返回值
根据给定参数year年份而返回的3月21日至复活节的天数。
更新日志
| 版本 | 说明 |
|---|---|
| Since 4.3.0 | 参数year 可选,缺省默认值是当年。 |
| Since 4.3.0 | 引入参数 method。 |
范例
示例 #1 easter_days example
<?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
?>
参见
- easter_date
FrenchToJD
从一个French Republican历法的日期得到Julian Day计数。
说明
int frenchtojd
( int
$month , <span
class="type">int $day , <span
class="type">int $year )
从一个French Republican历法的日期得到Julian Day计数。
年份所能用的范围是1到14(Gregorian历法的1792年9月22日到1806年9月22日)。
参数
month
月份的范围是1到13。
day
日期的范围是1到30。
year
年份的范围是1到14。
返回值
返回指定french revolution日期的julian天数。
参见
- jdtofrench
- cal_to_jd
GregorianToJD
转变一个Gregorian历法日期到Julian Day计数
说明
int <span
class="methodname">gregoriantojd ( <span
class="methodparam">int $month ,
int $day ,
int $year )
Gregorian历法的合理范围是4714 B.C. 至 9999 A.D.
虽然这个函数可以处理4714 B.C.以前的日期,但是没有意义。Gregorian历法直到1582年10年15日(或是Julian历法的1582年10月5日)才被发明,很久以后一些国家也没有接受它。比如,英国是在1752年开始使用Gregorian历法,苏联是在1918年,希腊是在1923年,大部分的欧洲国家使用Julian历法。
参数
month
月份的范围是 1(January)到 12(December)。
day
日期的范围是 1到 31。
year
年份的范围是 -4714 到 9999。
返回值
给定gregorian历法日期的julian天数。
范例
示例 #1 Calendar functions
<?php
$jd = GregorianToJD(10, 11, 1970);
echo "$jd\n";
$gregorian = JDToGregorian($jd);
echo "$gregorian\n";
?>
参见
- jdtogregorian
- cal_to_jd
JDDayOfWeek
返回星期的日期
说明
mixed <span
class="methodname">jddayofweek ( <span
class="type">int $julianday [, <span
class="methodparam">int $mode<span
class="initializer"> = CAL_DOW_DAYNO ] )
返回星期的日期,根据模式不同可能是字符串或是整数。
参数
julianday
一个julian天数。
mode
| Mode | Meaning |
|----------|------------------------------------------|
| 0 (默认) | 返回数字形式(0=Sunday, 1=Monday, etc) |
| 1 | 返回字符串形式 (English-Gregorian) |
| 2 | 返回缩写形式的字符串 (English-Gregorian) |
返回值
数字或字符串形式的星期数。
JDMonthName
返回月份的名称
说明
string <span
class="methodname">jdmonthname ( <span
class="type">int $julianday , <span
class="methodparam">int $mode )
返回一个月份名称的字符串,mode参数指定使用哪种历法和月份名称的形式。
| Mode | Meaning | Values |
|---|---|---|
| 0 | Gregorian - abbreviated | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec |
| 1 | Gregorian | January, February, March, April, May, June, July, August, September, October, November, December |
| 2 | Julian - abbreviated | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec |
| 3 | Julian | January, February, March, April, May, June, July, August, September, October, November, December |
| 4 | Jewish | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul |
| 5 | French Republican | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra |
参数
jday
用来计算的julian天数
calendar
历法的月份的名字
返回值
根据指定的julian天数和calendar历法参数而得到月份的名称。
JDToFrench
转变一个Julian Day计数到French Republican历法的日期
说明
string <span
class="methodname">jdtofrench ( <span
class="type">int $juliandaycount )
转变一个Julian Day计数到French Republican历法的日期。
参数
julianday
一个julian天数
返回值
以"月/日/年"形式的french revolution日期
参见
- frenchtojd
- cal_from_jd
JDToGregorian
转变一个Julian Day计数为Gregorian历法日期
说明
string <span
class="methodname">jdtogregorian ( <span
class="methodparam">int $julianday )
转变一个julian天数为gregorian历法的“月/日/年”形式的日期
参数
julianday
一个julian天数
返回值
“月/日/年”形式的gregorian日期
参见
- gregoriantojd
- cal_from_jd
jdtojewish
转换一个julian天数为Jewish历法的日期
说明
string <span
class="methodname">jdtojewish ( <span
class="type">int $juliandaycount [, <span
class="methodparam">bool $hebrew<span
class="initializer"> = false [, <span
class="methodparam">int $fl<span
class="initializer"> = 0 ]] )
转换一个julian天数为Jewish历法的日期。
参数
julianday
一个julian天数
hebrew
如果参数 hebrew设置为 true,参数fl可用于希伯莱语的格式。
fl
可用的格式有: CAL_JEWISH_ADD_ALAFIM_GERESH,
CAL_JEWISH_ADD_ALAFIM, CAL_JEWISH_ADD_GERESHAYIM.
返回值
以“月/日/年”的格式显示jewish日期。
更新日志
| 版本 | 说明 |
|---|---|
| 5.0.0 | 增加了参数 fl。 |
| 4.3.0 | 增加了参数 hebrew 。 |
范例
示例 #1 jdtojewish Example
<?php
echo jdtojewish(gregoriantojd(10, 8, 2002), true,
CAL_JEWISH_ADD_GERESHAYIM + CAL_JEWISH_ADD_ALAFIM + CAL_JEWISH_ADD_ALAFIM_GERESH);
?>
参见
- jewishtojd
- cal_from_jd
JDToJulian
转变一个Julian Day计数到Julian历法的日期
说明
string <span
class="methodname">jdtojulian ( <span
class="type">int $julianday )
转变一个Julian Day计数到以“月/日/年”形式显示的Julian历法的日期。
参数
julianday
一个julian天数
返回值
以“月/日/年”形式显示的Julian历法的日期
参见
- juliantojd
- cal_from_jd
jdtounix
转变Julian Day计数为一个Unix时间戳
说明
int jdtounix (
int $jday )
这个函数根据给定的julian天数返回一个Unix时间戳,或如果参数jday不在Unix时间(Gregorian历法的1970年至2037年,或2440588
\<= jday \<= 2465342)范围内返回 false
。返回的时间是本地时间(不是GMT)。
参数
jday
一个在 2440588 到 2465342 之间的julian天数
返回值
指定的julian天数的开始时的时间戳。
参见
- unixtojd
JewishToJD
转变一个Jewish历法的日期为一个Julian Day计数
说明
int jewishtojd
( int
$month , <span
class="type">int $day , <span
class="type">int $year )
尽管这个函数可以处理1(3761 B.C.)以前的年份,但这是没有意义的。Jewish历法被用了几千年,但早期的时候一个月的开始没有固定的准则,通常是观察到一个新月后定为一个月份的开始。
参数
month
在1到13之间的月份
day
在1到30日之间的日子
year
在1到9999之间的年份
返回值
指定的jewish历法的日期的julian天数。
参见
- jdtojewish
- cal_to_jd
JulianToJD
转变一个Julian历法的日期为Julian Day计数
说明
int juliantojd
( int
$month , <span
class="type">int $day , <span
class="type">int $year )
Julian历法的合理年份为 4713 B.C. 到 9999 A.D.
尽管这个函数也可以处理4713 B.C.以前的日期,但是没有意义。这个历法是在46 B.C.创立,但是到了8 A.D.还没有稳定,可能直到第4世纪才最终完善。而且,每年的开始也不相同,不是所有的国家都认定January为第一个月份的。
Caution
记住,当今世界最广泛使用的历法是Gregorian历法,函数<span class="function">gregoriantojd可以转变日期为Julian Day计数。
参数
month
月份的范围从 1 (January) 到 12 ( December)
day
日期的范围从 1 到 31
year
年份的范围从 -4713 到 9999
返回值
指定julian历法中的日期所对应的julian天数。
参见
- jdtojulian
- cal_to_jd
unixtojd
转变Unix时间戳为Julian Day计数
说明
int unixtojd
([ int
$timestamp = time() ] )
根据指定的Unix时间戳timestamp,返回Julian天数。如果没有指定时间戳则返回当前日期的天数。
参数
timestamp
一个用于转变的时间戳。
返回值
一个julian天数。
参见
- jdtounix
目录
- cal_days_in_month — 返回某个历法中某年中某月的天数
- cal_from_jd — 转换Julian Day计数到一个支持的历法。
- cal_info — 返回选定历法的信息
- cal_to_jd — 从一个支持的历法转变为Julian Day计数。
- easter_date — 得到指定年份的复活节午夜时的Unix时间戳。
- easter_days — 得到指定年份的3月21日到复活节之间的天数
- FrenchToJD — 从一个French Republican历法的日期得到Julian Day计数。
- GregorianToJD — 转变一个Gregorian历法日期到Julian Day计数
- JDDayOfWeek — 返回星期的日期
- JDMonthName — 返回月份的名称
- JDToFrench — 转变一个Julian Day计数到French Republican历法的日期
- JDToGregorian — 转变一个Julian Day计数为Gregorian历法日期
- jdtojewish — 转换一个julian天数为Jewish历法的日期
- JDToJulian — 转变一个Julian Day计数到Julian历法的日期
- jdtounix — 转变Julian Day计数为一个Unix时间戳
- JewishToJD — 转变一个Jewish历法的日期为一个Julian Day计数
- JulianToJD — 转变一个Julian历法的日期为Julian Day计数
- unixtojd — 转变Unix时间戳为Julian Day计数