php_ref_calendar
PHP 日历函数
Section titled “PHP 日历函数”PHP 日历简介
Section titled “PHP 日历简介”PHP Calendar 扩展提供了一套函数,用于使用儒略日计数(Julian Day Count)作为中间媒介在不同日历系统(公历、儒略历、犹太历、法国共和历)之间进行转换。
儒略日计数是自公元前 4713 年 1 月 1 日(儒略历)正午世界时以来连续的天数计数。
注意: 尽管可用,这些函数相对底层。对于 PHP 中大多数现代日期和时间操作,内置的 DateTime 类、DateInterval、DateTimeZone 以及 IntlDateFormatter 类(来自 Intl 扩展)提供了更强大、灵活和面向对象的方法。
转换过程:要使用此扩展从日历 A 转换为日历 B,您通常需要将日历 A 中的日期转换为其儒略日计数,然后再将该儒略日计数转换为日历 B 中的日期。
澄清:儒略日计数与儒略历系统本身是不同的。
要使用这些函数,PHP 需要编译时支持日历功能。您可以在编译时使用 --enable-calendar 标志启用它。
在许多系统上(包括预编译的 Windows 发行版和常见的 Linux 包管理器安装),calendar 扩展通常默认包含并启用。您可以通过检查您的 phpinfo() 输出验证它是否已启用。
PHP 日历函数
Section titled “PHP 日历函数”| 函数 | 说明 |
|---|---|
| cal_days_in_month() | 返回给定年份和日历系统中某个月的天数。 |
| cal_from_jd() | 将儒略日计数转换为指定日历系统的日期表示形式。 |
| cal_info() | 返回有关指定日历系统的信息(例如,月份、日期)。 |
| cal_to_jd() | 将给定日历系统的日期转换为其儒略日计数。 |
| easter_date() | 返回给定年份复活节星期日午夜的 Unix 时间戳(默认使用 1752 年后的公历规则)。 |
| easter_days() | 返回给定年份复活节星期日落在 3 月 21 日之后的日数。 |
| frenchtojd() | 将法国共和历的日期转换为其儒略日计数。 |
| gregoriantojd() | 将公历的日期转换为其儒略日计数。 |
| jddayofweek() | 返回给定儒略日计数的星期几(例如,‘Monday’,1)。 |
| jdmonthname() | 返回给定儒略日计数和日历系统的月份名称(例如,‘January’,‘Jan’)。 |
| jdtofrench() | 将儒略日计数转换为法国共和历的日期。 |
| jdtogregorian() | 将儒略日计数转换为公历日期(YYYY-MM-DD 格式)。 |
| jdtojewish() | 将儒略日计数转换为犹太历日期。 |
| jdtojulian() | 将儒略日计数转换为儒略历日期。 |
| jdtounix() | 将儒略日计数转换为 Unix 时间戳(自 Unix 纪元以来的秒数)。 |
| jewishtojd() | 将犹太历日期转换为其儒略日计数。 |
| juliantojd() | 将儒略历日期转换为其儒略日计数。 |
| unixtojd() | 将 Unix 时间戳转换为其对应的儒略日计数。 |
PHP 预定义日历常量
Section titled “PHP 预定义日历常量”这些常量用作日历函数的参数,通常指定日历系统或格式选项。
Constant Type Description----------------------------- ------- ----------------------------------------------------CAL_GREGORIAN Integer 公历CAL_JULIAN Integer 儒略历CAL_JEWISH Integer 犹太历CAL_FRENCH Integer 法国共和历CAL_NUM_CALS Integer 可用日历总数CAL_DOW_DAYNO Integer 星期几对应的数字(0=星期日,1=星期一,...)CAL_DOW_SHORT Integer 缩写日名称(例如,“周一”)CAL_DOW_LONG Integer 完整日名称(例如,“星期一”)CAL_MONTH_GREGORIAN_SHORT Integer 公历月份缩写名称(例如,“一月”)CAL_MONTH_GREGORIAN_LONG Integer 公历月份完整名称(例如,“一月”)CAL_MONTH_JULIAN_SHORT Integer 儒略历月份缩写名称CAL_MONTH_JULIAN_LONG Integer 儒略历月份完整名称CAL_MONTH_JEWISH Integer 犹太历月份名称CAL_MONTH_FRENCH Integer 法国共和历月份名称CAL_EASTER_DEFAULT Integer 根据 1752 年后公历规则计算复活节CAL_EASTER_ROMAN Integer 根据 1582 年后公历规则计算复活节CAL_EASTER_ALWAYS_GREGORIAN Integer 使用推定公历规则计算复活节CAL_EASTER_ALWAYS_JULIAN Integer 使用儒略历规则计算复活节CAL_JEWISH_ADD_ALAFIM_GERESH Integer 在千位数字前添加 geresh 符号(如 ')(犹太历年)CAL_JEWISH_ADD_ALAFIM Integer 为千位数字添加单词 'alafim'(犹太历年)CAL_JEWISH_ADD_GERESHAYIM Integer 在年份最后一个字母前添加 gershayim 符号(如 ")(犹太历年)