📅  最后修改于: 2023-12-03 15:03:36.398000             🧑  作者: Mango
在日常的开发中,我们需要经常处理日期相关的问题,比如计算某年某月有多少天。针对这种问题,PHP中提供了 cal_days_in_month()
函数,可以根据指定的年份和月份,返回该月的天数。
cal_days_in_month($calendar, $month, $year);
其中,$calendar
参数是一个可选参数,表示要使用的日历系统,可以选用 CAL_GREGORIAN
、CAL_JULIAN
、CAL_JEWISH
、CAL_FRENCH
、CAL_NUM_CALS
等常量之一。默认值为 CAL_GREGORIAN
,即格里高利历。
$month
参数表示月份,取值范围为1至12。需要注意的是,如果指定的月份不合法(比如13),函数会自动进行月份的调整,所以不用担心传入错误的月份会导致出错的问题。
$year
参数表示年份,可以是一个整数,也可以是一个使用四位数字表示的字符串,比如 "2022"。
函数返回指定月份在指定日历下的天数,如果出错,则返回 false
。
// 获取2022年3月的天数
$days = cal_days_in_month(CAL_GREGORIAN, 3, 2022);
echo "2022年3月有 {$days} 天。";
// 获取2019年2月(非闰年)的天数
$days = cal_days_in_month(CAL_GREGORIAN, 2, "2019");
echo "2019年2月有 {$days} 天。";
输出结果如下:
2022年3月有 31 天。
2019年2月有 28 天。
cal_days_in_month()
函数的时候,需要注意月份的范围不能超出1至12之间。date('t')
函数来实现,比如 date('t', strtotime('2022-03-01'))
将返回2022年3月的天数。cal_days_in_month()
函数的返回值和闰年和平年的月份天数一致,因此不需要考虑闰年的特别情况。