cal_days_in_month

(PHP 4 >= 4.0.7, PHP 5)

cal_days_in_month — Return the number of days in a month for a given year and calendar

Описание

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

This function will return the number of days in the month of year for the specified calendar .

Список параметров

calendar

Calendar to use for calculation

month

Month in the selected calendar

year

Year in the selected calendar

Возвращаемые значения

The length in days of the selected month in the given calendar

Примеры

Пример #1 cal_days_in_month() example

<?php
$num 
cal_days_in_month(CAL_GREGORIAN82003); // 31
echo "There was $num days in August 2003";
?>

Коментарии

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 == ? ($year 28 : ($year 100 29 : ($year 400 28 29))) : (($month 1) % 30 31);
}
?>

Enjoy,
David Bindel
2004-01-01 23:06:24
http://php5.kiev.ua/manual/ru/function.cal-days-in-month.html
Remember if you just want the days in the current month, use the date function:
$days = date("t");
2007-12-04 18:55:47
http://php5.kiev.ua/manual/ru/function.cal-days-in-month.html
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;
    }
}
2022-08-31 18:59:57
http://php5.kiev.ua/manual/ru/function.cal-days-in-month.html

    Поддержать сайт на родительском проекте КГБ