How do i get the last day of the current month in php?

You are here: Home / PHP / Get Last Day of Month in php

To get the last day of a month, you can use the php date() function and format with “Y-m-t”. “t” returns the last day of a month.

echo date('Y-m-t');
echo date('Y-m-t', strtotime('22-04-01'));

// Output:
2022-04-30
2022-04-30

When working with date objects in php, the ability to easily change or get information about a specific time period is valuable.

One such piece of information is the last day of a given month.

We can easily get the last day of a given month with the php date() function.

To get the last date of a month, you can use the “Y-m-t” format.

Below is an example of how you can use date() to get the last date of a month in php.

echo date('Y-m-t');
echo date('Y-m-t', strtotime('22-04-01'));

// Output:
2022-04-30
2022-04-30

Getting the Number of Days in the Current Month with php

If you want to get the number of days in the current month, we can use the date() function and only pass ‘t’. As we know, ‘t’ returns the last day in a month.

Below is an example in php of how to get the number of days in the current month using date().

echo date('t');

// Output: 
30

Hopefully this article has been useful for you to learn how to get the last date of a given month in your php code.

  • 1.  Get Word Count of String in php with str_word_count() Function
  • 2.  Delete Cookie Using php
  • 3.  Get Last Element of Array in php
  • 4.  How to Reverse Array in php Without a Function or Other Variables
  • 5.  php array_flip() – Flip the Keys and Values of an Array in php
  • 6.  php pi – Get Value of pi Using php pi() Function
  • 7.  Get User Agent in php with $_SERVER[‘HTTP_USER_AGENT’]
  • 8.  How to Check If String Contains Substring in PHP
  • 9.  php property_exists() – Check if Property Exists in Class or Object
  • 10.  php strlen() – Get the Length of String Variable in php

How do i get the last day of the current month in php?

About The Programming Expert

The Programming Expert is a compilation of a programmer’s findings in the world of software development, website creation, and automation of processes.

Programming allows us to create amazing applications which make our work more efficient, repeatable and accurate.

At the end of the day, we want to be able to just push a button and let the code do it’s magic.

You can read more about us on our about page.

Reader Interactions

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

cal_days_in_monthReturn 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

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

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. :)

<?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

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

<?php
# PHP Calendar (version 2.3), written by Keith Devensfunction generate_calendar($year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array()){
   
$first_of_month = gmmktime(0,0,0,$month,1,$year);#remember that mktime will automatically correct if invalid dates are entered
    # for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998
    # this provides a built in "rounding" feature to generate_calendar()
$day_names = array(); #generate all the day names according to the current locale
   
for($n=0,$t=(3+$first_day)*86400; $n<7; $n++,$t+=86400) #January 4, 1970 was a Sunday
       
$day_names[$n] = ucfirst(gmstrftime('%A',$t)); #%A means full textual day namelist($month, $year, $month_name, $weekday) = explode(',',gmstrftime('%m,%Y,%B,%w',$first_of_month));
   
$weekday = ($weekday + 7 - $first_day) % 7; #adjust for $first_day
   
$title   = htmlentities(ucfirst($month_name)).'&nbsp;'.$year#note that some locales don't capitalize month and day names

    #Begin calendar. Uses a real <caption>. See http://diveintomark.org/archives/2002/07/03

@list($p, $pl) = each($pn); @list($n, $nl) = each($pn); #previous and next links, if applicable
   
if($p) $p = '<span class="calendar-prev">'.($pl ? '<a href="'.htmlspecialchars($pl).'">'.$p.'</a>' : $p).'</span>&nbsp;';
    if(
$n) $n = '&nbsp;<span class="calendar-next">'.($nl ? '<a href="'.htmlspecialchars($nl).'">'.$n.'</a>' : $n).'</span>';
   
$calendar = '<table class="calendar">'."\n".
       
'<caption class="calendar-month">'.$p.($month_href ? '<a href="'.htmlspecialchars($month_href).'">'.$title.'</a>' : $title).$n."</caption>\n<tr>";

    if(

$day_name_length){ #if the day names should be shown ($day_name_length > 0)
        #if day_name_length is >3, the full name of the day will be printed
       
foreach($day_names as $d)
           
$calendar .= '<th abbr="'.htmlentities($d).'">'.htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d).'</th>';
       
$calendar .= "</tr>\n<tr>";
    }

    if(

$weekday > 0) $calendar .= '<td colspan="'.$weekday.'">&nbsp;</td>'; #initial 'empty' days
   
for($day=1,$days_in_month=gmdate('t',$first_of_month); $day<=$days_in_month; $day++,$weekday++){
        if(
$weekday == 7){
           
$weekday   = 0; #start a new week
           
$calendar .= "</tr>\n<tr>";
        }
        if(isset(
$days[$day]) and is_array($days[$day])){
            @list(
$link, $classes, $content) = $days[$day];
            if(
is_null($content))  $content  = $day;
           
$calendar .= '<td'.($classes ? ' class="'.htmlspecialchars($classes).'">' : '>').
                (
$link ? '<a href="'.htmlspecialchars($link).'">'.$content.'</a>' : $content).'</td>';
        }
        else
$calendar .= "<td>$day</td>";
    }
    if(
$weekday != 7) $calendar .= '<td colspan="'.(7-$weekday).'">&nbsp;</td>'; #remaining "empty" daysreturn $calendar."</tr>\n</table>\n";
}
echo
generate_calendar(2010, 12, 16,3,NULL,0,15, $first_of_month, $day_names, $day_names[$n]);
#echo generate_calendar($year, $month, $days,$day_name_length,$month_href,$first_day,$pn);
?>

How can I get the last day of the next month in PHP?

getting last day of next month in php.
$lastDateOfNextMonth =strtotime('last day of next month') ;.
$lastDay = date('d/m/Y', $lastDateOfNextMonth);.
print_r($lastDay);.

Which date function returns the last day of the month?

=EOMONTH(A2, -1) - returns the last day of the month, one month before the date in cell A2. Instead of a cell reference, you can hardcode a date in your EOMONTH formula.

How can I get first and last date of month in PHP?

You can be creative with this. For example, to get the first and last second of a month: $timestamp = strtotime('February 2012'); $first_second = date('m-01-Y 00:00:00', $timestamp); $last_second = date('m-t-Y 12:59:59', $timestamp); // A leap year!