How to find the last day of the month from date?
t
returns the number of days in the month of a given date (see the docs for date
):
$a_date = "2009-11-23";
echo date("Y-m-t", strtotime($a_date));
The code using strtotime() will fail after year 2038. (as given in the first answer in this thread) For example try using the following:
$a_date = "2040-11-23";
echo date("Y-m-t", strtotime($a_date));
It will give answer as: 1970-01-31
So instead of strtotime, DateTime function should be used. Following code will work without Year 2038 problem:
$d = new DateTime( '2040-11-23' );
echo $d->format( 'Y-m-t' );
I know this is a little bit late but i think there is a more elegant way of doing this with PHP 5.3+
by using the DateTime class :
$date = new DateTime('now');
$date->modify('last day of this month');
echo $date->format('Y-m-d');