[PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8]
cal_days_in_month — Return the number of days in a month for a given year and calendar
Description
cal_days_in_month[int $calendar
, int $month
, int $year
]:
int
Parameters
calendar
Calendar to use for calculation
month
Month in the selected calendar
year
Year in the selected calendar
Return Values
The length in days of the selected month in the given calendar
Examples
Example #1 cal_days_in_month[] example
brian at b5media dot com ¶
14 years ago
Remember if you just want the days in the current month, use the date function:
$days = date["t"];
dbindel at austin dot rr dot com ¶
18 years ago
Here's a one-line function I just wrote to find the numbers of days in a month that doesn't depend on any other functions.
The reason I made this is because I just found out I forgot to compile PHP with support for calendars, and a class I'm writing for my website's open source section was broken. So rather than recompiling PHP [which I will get around to tomorrow I guess], I just wrote this function which should work just as well, and will always work without the requirement of PHP's calendar extension or any other PHP functions for that matter.
I learned the days of the month using the old knuckle & inbetween knuckle method, so that should explain the mod 7 part. :]
Enjoy,
David Bindel
datlx at yahoo dot com ¶
18 days ago
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;
}
}
jeffbeall at comcast dot net ¶
18 years ago
This will work great in future dates but will give the wrong answer for dates before 1550 [approx] when leap year was introduced and the calendar lost a year or two.
Sorry now to be more specific it has been a while sine I had to account for those later dates and had to take that into account but just a heads up for others to watch out.
geko45pj at yahoo dot com ¶
15 years ago