cal_from_jd() 函数用于将儒略日数转换为指定日历类型的日期信息。
儒略日是一种连续计日的系统,主要用于天文计算和历史日期转换。这个函数在历史研究、天文计算和日历系统转换中非常有用。
cal_from_jd(int $julian_day, int $calendar): array
| 参数 | 描述 |
|---|---|
| julian_day | 必需。儒略日数,是一个整数 |
| calendar | 必需。指定目标日历类型。常用值:CAL_GREGORIAN(公历)、CAL_JULIAN(儒略历)等 |
返回一个关联数组,包含转换后的日期信息。数组包含以下键:
date - 格式为 "月/日/年" 的字符串month - 月份(1-12)day - 天数(1-31)year - 年份dow - 星期几(0=周日,1=周一,...,6=周六)abbrevdayname - 星期几的缩写名称dayname - 星期几的完整名称abbrevmonth - 月份的缩写名称monthname - 月份的完整名称| 常量 | 描述 |
|---|---|
| CAL_GREGORIAN | 公历(格里高利历) |
| CAL_JULIAN | 儒略历 |
| CAL_JEWISH | 犹太历 |
| CAL_FRENCH | 法国共和历 |
// 将儒略日 2451545 转换为公历日期
$julian_day = 2451545;
$date_info = cal_from_jd($julian_day, CAL_GREGORIAN);
print_r($date_info);
输出结果:
Array
(
[date] => 1/1/2000
[month] => 1
[day] => 1
[year] => 2000
[dow] => 6
[abbrevdayname] => Sat
[dayname] => Saturday
[abbrevmonth] => Jan
[monthname] => January
)
// 将儒略日 2451545 转换为儒略历日期
$julian_day = 2451545;
$date_info = cal_from_jd($julian_day, CAL_JULIAN);
echo "儒略历日期: " . $date_info['date'];
输出结果:
儒略历日期: 12/19/1999
// 获取特定儒略日对应的完整日期信息
$julian_day = 2459580; // 对应 2022年1月1日
$date_info = cal_from_jd($julian_day, CAL_GREGORIAN);
echo "日期: " . $date_info['date'] . "\n";
echo "星期: " . $date_info['dayname'] . "\n";
echo "月份: " . $date_info['monthname'] . "\n";
echo "年份: " . $date_info['year'] . "\n";
echo "星期几编号: " . $date_info['dow'];
输出结果:
日期: 1/1/2022
星期: Saturday
月份: January
年份: 2022
星期几编号: 6
// 使用jdtojulian获取儒略日,然后转换回日期
$timestamp = strtotime("2023-12-25");
$julian_day = unixtojd($timestamp);
$date_info = cal_from_jd($julian_day, CAL_GREGORIAN);
echo "儒略日: " . $julian_day . "\n";
echo "转换回日期: " . $date_info['date'];
输出结果:
儒略日: 2460305
转换回日期: 12/25/2023
| 返回值: | 返回包含日期信息的关联数组 |
|---|---|
| PHP 版本: | 4.1+ |
| 依赖扩展: | 需要启用Calendar扩展 |
cal_from_jd() 函数在以下场景中特别有用:
cal_to_jd() - 将日期转换为儒略日数jdtojulian() - 将儒略日数转换为儒略历日期jdtogregorian() - 将儒略日数转换为公历日期unixtojd() - 将Unix时间戳转换为儒略日jddayofweek() - 返回儒略日数的星期几