PHP日历函数
PHP的Windows版本已经内建对日历函数扩展的支持,安装后可以直接使用以下函数,linux上则需要在编译PHP时加上--enable-calendar参数。
cal_info:返回指定历法的信息,返回一个包含历法信息的数组,包含的元素有历法名称、历法代码、月份、月份的缩写和单月的最多天数。如果没有指定历法,则以数组形式返回支持的所有历法的信息。
cal_from_jd:将儒略日天数转换到一个支持的历法的日期。接受两个参数,第一个参数为儒略日天数,第一个参数为使用的历法。返回一个数组,包含的历法信息有月、日、年、星期、星期的缩写和全写、月份的缩写和全写,日期的形式是“月/日/年”。
cal_to_jd:从一个支持的历法日期转变为儒略日天数。接受四个参数,第一个参数为使用的历法,第二个参数为历法中的月,第三个参数为历法中的日,第四个参数为历法中的年。
frenchtojd:将法国共和历日期转换为儒略日天数。接受三个参数,第一个参数为月,范围是1到13,第二个参数为日,范围是1到30,第三个参数为年,范围是1到14。等价于cal_to_jd(CAL_FRENCH,$month,$day,$year)。
gregoriantojd:将格里高利历日期转换为儒略日天数。接受三个参数,第一个参数为月,范围是1到12,第二个参数为日,范围是1到31,第三个参数为年,范围是-4714到9999。等价于cal_to_jd(CAL_GREGORIAN,$month,$day,$year)。
jewishtojd:将犹太历日期转换为儒略日天数。接受三个参数,第一个参数为月,范围是1到13,第二个参数为日,范围是1到30,第三个参数为年,范围是1到9999。等价于cal_to_jd(CAL_JEWISH,$month,$day,$year)。
juliantojd:将儒略日日期转换为儒略日天数。接受三个参数,第一个参数为月,范围是1到12,第二个参数为日,范围是1到31,第三个参数为年,范围是-4713到9999。等价于cal_to_jd(CAL_JULIAN,$month,$day,$year)。
unixtojd:将Unix时间戳的毫秒值换为儒略日天数。如果没有传入时间戳,则默认为当前时间。
jdtofrench:将儒略日天数转换为法国共和历日期。返回值格式为“月/日/年”格式的法国共和历日期。
jdtogregorian:将儒略日天数转换为格里高利历日期。返回值格式为“月/日/年”格式的格里高利历日期。
jdtojewish:将儒略日天数转换为犹太历日期。接受三个参数,第一个参数为为儒略日天数,第二个为可选的布尔参数,表示是否使用希伯来语,默认为false。第三个参数为可选的犹太历格式标记,可用于希伯莱语的格式。
jdtojulian:将儒略日天数转换为儒略历日期。返回值格式为“月/日/年”格式的儒略历日期。
jdtounix:将儒略日天数转换为本地Unix时间戳的毫秒值。儒略日天数范围是2440588到2465342,如果超过这个范围则返回false。
jddayofweek:返回日期的星期,接受两个参数,第一个参数为儒略日天数,第二个为可选的星期格式标记,默认为CAL_DOW_DAYNO 。
jdmonthname:返回日期的月份,接受两个参数,第一个参数为儒略日天数,第二个为的月份格式标记。
cal_days_in_month:返回某个历法中某年中某月的天数,接受三个参数,第一个参数为使用的历法,第二个参数为历法中的月,第三个参数为历法中的年。
easter_date:得到指定年份的复活节午夜时的Unix时间戳的毫秒值。如果传入的年份超过Unix时间戳范围(1970-2037)会产生警告。如果不传入年份则默认为当前年份。
easter_days:返回指定年份的3月21日到复活节的天数,接受两个参数,第一个是可选的年份,如果不传默认为当前年份,第二个是可选的复活节计算历法标记,用来指定计算时使用的历法。
<?php
echo cal_days_in_month(CAL_FRENCH,7,13)."\n";
var_dump(cal_info());
var_dump(cal_to_jd(CAL_FRENCH,7,20,14));
var_dump(cal_from_jd(2380787,CAL_GREGORIAN));
var_dump(easter_date());
var_dump(easter_date(2037));
$year=1600;
var_dump(easter_days($year));
var_dump(easter_days($year,CAL_EASTER_ROMAN));
var_dump(easter_days($year,CAL_EASTER_ALWAYS_GREGORIAN));
var_dump(easter_days($year,CAL_EASTER_ALWAYS_JULIAN));
var_dump(frenchToJD(7,20,14));
var_dump(gregorianToJD(7,30,2018));
var_dump(jddayofweek(2458330));
var_dump(jdmonthname(2458330,CAL_MONTH_GREGORIAN_SHORT));
var_dump(jdtofrench(2380787));
var_dump(jdtogregorian(2458330));
var_dump(jdtojewish(2458330));
var_dump(jdtojewish(2458330,true));
var_dump(iconv('WINDOWS-1255', 'UTF-8', jdtojewish(2458330,true,CAL_JEWISH_ADD_ALAFIM_GERESH)));
var_dump(iconv('WINDOWS-1255', 'UTF-8', jdtojewish(2458330,true,CAL_JEWISH_ADD_ALAFIM)));
var_dump(iconv('WINDOWS-1255', 'UTF-8', jdtojewish(2458330,true,CAL_JEWISH_ADD_GERESHAYIM)));
var_dump(iconv('WINDOWS-1255', 'UTF-8', jdtojewish(2458330,true,CAL_JEWISH_ADD_GERESHAYIM+CAL_JEWISH_ADD_ALAFIM)));
var_dump(jdtojulian(2458330));
var_dump(jdtounix(2458330));
var_dump(jewishtojd(12,18,5778));
var_dump(juliantojd(12,18,5778));
var_dump(unixtojd(1532908800));
?>
上一篇: 用java语言画一个可视化日历
下一篇: FullCalendar