PHP 8.4.1 Released!

cal_days_in_month

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

cal_days_in_monthRetourne le nombre de jours dans un mois, pour une année et un calendrier donné

Description

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

Retourne le nombre de jours dans le mois month de l'année year, pour le calendrier calendar.

Liste de paramètres

calendar

Calendrier à utiliser pour le calcul

month

Mois dans le calendrier sélectionné

year

Année dans le calendrier sélectionné

Valeurs de retour

Le nombre de jours dans le mois sélectionné, dans le calendrier fourni.

Exemples

Exemple #1 Exemple avec cal_days_in_month()

<?php
$number
= cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There were {$number} days in August 2003";
?>

add a note

User Contributed Notes 3 notes

up
145
brian at b5media dot com
16 years ago
Remember if you just want the days in the current month, use the date function:
$days = date("t");
up
45
dbindel at austin dot rr dot com
20 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. :)

<?php
/*
* days_in_month($month, $year)
* Returns the number of days in a given month and year, taking into account leap years.
*
* $month: numeric month (integers 1-12)
* $year: numeric year (any integer)
*
* Prec: $month is an integer between 1 and 12, inclusive, and $year is an integer.
* Post: none
*/
// corrected by ben at sparkyb dot net
function days_in_month($month, $year)
{
// calculate number of days in a month
return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
}
?>

Enjoy,
David Bindel
up
2
datlx at yahoo dot com
2 years 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;
}
}
To Top