2024年PHP开发者大会(日本)

cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

cal_days_in_month返回指定年份和日历的月份的天数

描述

cal_days_in_month(int $calendar, int $month, int $year): int

此函数将返回指定calendaryearmonth月的天数。

参数

calendar

用于计算的日历

month

所选日历中的月份

year

所选日历中的年份

返回值

给定日历中所选月份的天数

示例

示例 #1 cal_days_in_month() 示例

<?php
$number
= cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "2003年8月有 {$number} 天";
?>

添加笔记

用户贡献笔记 3条笔记

brian at b5media dot com
17年前
记住,如果您只需要当前月份的天数,请使用date函数
$days = date("t");
dbindel at austin dot rr dot com
20年前
这是一个我刚刚编写的一行函数,用于查找一个月的天数,它不依赖于任何其他函数。

我编写这个函数的原因是我刚刚发现我忘记用日历支持编译PHP,而我为网站开源部分编写的类坏了。所以与其重新编译PHP(我猜我明天会做),我编写了这个函数,它应该同样有效,并且总是有效,不需要PHP的日历扩展或任何其他PHP函数。

我使用旧的指关节和指关节间方法学习月份的天数,所以这应该可以解释mod 7部分。:)

<?php
/*
* days_in_month($month, $year)
* 返回给定月份和年份的天数,考虑闰年。
*
* $month: 月份数字 (整数1-12)
* $year: 年份数字 (任何整数)
*
* 前置条件: $month 是1到12之间的整数,$year 是整数。
* 后置条件: 无
*/
// ben at sparkyb dot net更正
function days_in_month($month, $year)
{
// 计算一个月的天数
return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
}
?>

享受!
David Bindel
datlx at yahoo dot com
2年前
function lastDayOfMonth(string $time, int $deltaMonth, string $format = 'Y-m-d')
{
try {
$year = date('Y', strtotime($time));
$month = date('m', strtotime($time));

$increaYear = floor(($deltaMonth + $month - 1) / 12);

$year += $increaYear;
$month = (($deltaMonth + $month) % 12) ?: 12;
$day = cal_days_in_month(CAL_GREGORIAN, $month, $year);

return $time . ' + ' . $deltaMonth . ' => ' . date($format, strtotime($year . '-' . $month . '-' . $day)) . "\n";
} catch (Exception $e) {
throw $e;
}
}
To Top