Skip to content

日历和事件相关扩展 - Calendar

介绍

历法扩展集包括了一系列用于在不同历法间进行转换的函数,它是以Julian Day计数为中介或标准来进行的。Julian Day计数是以公元前的4713年的1月1日为起点的一种计数法。为了在不同历法间进行转换,你首先要转换成Julian Day计数,然后再转换为你所需要的历法。Julian Day计数和Julian历法是非常不同的!

安装

win 已经内建了支持, linux 需要在编译 PHP 时加上 –enable-calendar

配置

此扩展没有定义配置

函数

int cal_days_in_month ( int $calendar , int $month , int $year )

返回某个历法中某年某月的天数

$calendar
      CAL_GREGORIAN
      CAL_JULIAN
      CAL_JEWISH
      CAL_FRENCH
 $month
 $year

array cal_from_jd ( int $jd , int $calendar )

函数根据给定的Julian day的jd 天数转换成特定历法calendar中的日期,返回数组用来储存值

$jd       Julian day, 天数
$calendar 支持的历法常量

array cal_info ([ int $calendar = -1 ] )

历法信息以一个数组的形式返回,包含的元素有历法名称,历法代码,月份,月份的缩写和单月的最多天数

$calendar     支持的历法的种类,默认是所有

int cal_to_jd ( int $calendar , int $month , int $day , int $year )

从一个指定的历法算出Julian day

int easter_date ([ int $year ] )

得到指定年份的复活节午夜时候的unix时间戳

$year     1970年至2037年之间的数字形式的年份。

int easter_days ([ int $year [, int $method = CAL_EASTER_DEFAULT ]] )

返回指定年份的3月21日到复活节之间的天数,如果没有指定年份,默认是当年

 $year   正整数形式的年份
 $method
      当设置为CAL_EASTER_ROMAN时可以用Gregorian历法来计算1582-1752之间的复活节日期

int frenchtojd ( int $month , int $day , int $year )

从一个French Republican历法的日期得到Julian Day计数 年份所能用的范围是1到14(Gregorian历法的1792年9月22日到1806年9月22日)

 $month  [1-13]
 $day    [1-30]
 $year   [1-14]

int gregoriantojd ( int $month , int $day , int $year )

转变一个Gregorian历法日期到Julian Day计数

 $month     [1-12]
 $day       [1-31]
 $year      [-4714-9999]

mixed jddayofweek ( int $julianday [, int $mode = CAL_DOW_DAYNO ] ) 返回星期几

 $julianday
 $mode
      CAL_DOW_DAYNO      数字形式  [Sunday-Monday]
      CAL_DOW_SHORT      返回缩写形式的字串形式
      CAL_DOW_LONG       返回字串形式

string jdmonthname ( int $julianday , int $mode )

返回月份的名称

 $mode
CAL_MONTH_GREGORIAN_SHORT
 Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_GREGORIAN_LONG
 January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JULIAN_SHORT
 Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
CAL_MONTH_JULIAN_LONG
 January, February, March, April, May, June, July, August, September, October, November, December
CAL_MONTH_JEWISH
 Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
CAL_MONTH_FRENCH
 Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

string jdtofrench ( int $juliandaycount ) 转变一个Julian Day计数到French Republican历法的日期

string jdtogregorian ( int $julianday ) 转变一个Julian Day计数为Gregorian历法日期

string jdtojewish ( int $julianday [, bool $hebrew = false [, int $fl = 0 ]] ) 转换一个Julian天数为Jewish历法的日期

 $julianday
 $hebrew         如果hebrew设置为true, 参数 fl, 可用于希伯来语的格式
 $fl
      CAL_JEWISH_ADD_ALAFIM_GERESH
      CAL_JEWISH_ADD_ALAFIM
      CAL_JEWISH_ADD_GERESHAYIM

string jdtojulian ( int $julianday )

转变一个Julian Day 计数到以“月/日/年”形式显示的 Julian 历法的日期

int jdtounix ( int $jday )

转换 Julian Day 为一个Unix 时间戳.

int jewishtojd ( int $month , int $day , int $year )

转换一个Jewish历法到Julian Day 计数

int juliantojd ( int $month , int $day , int $year )

转变一个Julian 历法的日期 为 Julian Day 计数

int unixtojd ([ int $timestamp = time() ] )

转变 unix 时间戳为 Julian Day 技术


说明

创建时间: 2023-01-15 09:27:00 , 最后编辑于 2023-11-24 14:36:00