php – Get the last day of the month?-ThrowExceptions

Exception or error:

Possible Duplicate:
PHP last day of the month

Is there any function like $date->getMonthDays() or $date->getLastDayOfMonth() in PHP to get the number of days in a given month (or the last day number)?

$start = new DateTime('2012-02-01');
$end   = clone $start;

// Interval = last day of the month minus current day in $start
$interval = $start->getLastDayOfMonth() - intval($start->format('j'));
$end->add(new DateInterval('P' . $interval . 'D'));

EDIT: thanks, voted to close, it’s a duplicate, sorry for asking…

How to solve:

The php date function gives you the number of days in the month with ‘t’

date("t");

See: http://php.net/manual/en/function.date.php

Answer:

It’s simple to get last month date

echo date("Y-m-t", strtotime("-1 month") ) ;
echo date("Y-m-1", strtotime("-1 month") ) ;

at March 3 returns

2011-02-28
2011-02-1

Answer:

t gives you the total number of days in the current month. j gives you the current day of the month.

Using modify and some subtraction from format-ing the datetime, you can get to the end of the month.

$date = new DateTime();
$lastDayOfMonth = $date->modify(
  sprintf('+%d days', $date->format('t') - $date->format('j'))
);

Leave a Reply

Your email address will not be published. Required fields are marked *