cal_info() 函数用于返回指定日历系统的信息,包括月份名称、月份缩写、星期名称、星期缩写等。
这个函数在需要获取日历系统详细信息、多语言支持或日历应用开发时非常有用。
cal_info(int $calendar = -1): array
| 参数 | 描述 |
|---|---|
| calendar | 可选。指定要获取信息的日历类型。如果省略或设置为-1,则返回所有可用日历的信息。 |
返回一个关联数组,包含指定日历系统的信息。数组包含以下键:
months - 包含12个月份完整名称的数组abbrevmonths - 包含12个月份缩写名称的数组maxdaysinmonth - 月份中的最大天数calname - 日历名称calsymbol - 日历符号(UTF-8字符)| 常量 | 描述 |
|---|---|
| CAL_GREGORIAN | 公历(格里高利历) |
| CAL_JULIAN | 儒略历 |
| CAL_JEWISH | 犹太历 |
| CAL_FRENCH | 法国共和历 |
// 获取所有可用日历的信息
$all_calendars = cal_info();
print_r($all_calendars);
输出结果(示例):
Array
(
[0] => Array
(
[months] => Array
(
[1] => January
[2] => February
...
)
[abbrevmonths] => Array
(
[1] => Jan
[2] => Feb
...
)
[maxdaysinmonth] => 31
[calname] => Gregorian
[calsymbol] => CAL_GREGORIAN
)
[1] => Array
(
// 其他日历信息...
)
)
// 获取公历的详细信息
$gregorian_info = cal_info(CAL_GREGORIAN);
echo "日历名称: " . $gregorian_info['calname'] . "\n";
echo "月份最大天数: " . $gregorian_info['maxdaysinmonth'] . "\n";
echo "所有月份: " . implode(', ', $gregorian_info['months']) . "\n";
echo "月份缩写: " . implode(', ', $gregorian_info['abbrevmonths']);
输出结果:
日历名称: Gregorian
月份最大天数: 31
所有月份: January, February, March, April, May, June, July, August, September, October, November, December
月份缩写: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
// 获取犹太历的详细信息
$jewish_info = cal_info(CAL_JEWISH);
echo "日历名称: " . $jewish_info['calname'] . "\n";
echo "月份最大天数: " . $jewish_info['maxdaysinmonth'] . "\n";
echo "所有月份: " . implode(', ', $jewish_info['months']);
输出结果:
日历名称: Jewish
月份最大天数: 30
所有月份: Tishri, Heshvan, Kislev, Tevet, Shevat, Adar, Adar I, Adar II, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
// 使用cal_info构建月份选择下拉菜单
$calendar_info = cal_info(CAL_GREGORIAN);
echo "<select name='month'>\n";
foreach ($calendar_info['months'] as $month_num => $month_name) {
echo "<option value='{$month_num}'>{$month_name}</option>\n";
}
echo "</select>";
输出结果(HTML):
<select name='month'>
<option value='1'>January</option>
<option value='2'>February</option>
<option value='3'>March</option>
...
</select>
| 返回值: | 返回包含日历信息的关联数组 |
|---|---|
| PHP 版本: | 4.1+ |
| 依赖扩展: | 需要启用Calendar扩展 |
cal_info() 函数在以下场景中特别有用:
cal_days_in_month() - 返回指定月份的天数cal_from_jd() - 将儒略日数转换为日历日期cal_to_jd() - 将日历日期转换为儒略日数jddayofweek() - 返回儒略日数的星期几jdmonthname() - 返回月份名称