PHP 8.4.2 Released!

cal_days_in_month

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

cal_days_in_monthRetorna o número de dias em um mês de um calendário e ano requisitado

Descrição

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

Esta função irá retornar o número de dias em um month do year para o calendar especificado.

Parâmetros

calendar

Calendário para usar no cálculo

month

Mês a ser selecionado no calendário

year

Ano no selecionado calendário

Valor Retornado

A quantidade de dias do selecionado mês no dado calendário

Exemplos

Exemplo #1 Exemplo da cal_days_in_month()

<?php
$numero
= cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "Houve {$numero} dias em Agosto de 2003";
?>

adicione uma nota

Notas Enviadas por Usuários (em inglês) 3 notes

up
145
brian at b5media dot com
17 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