2012-01-18 25 views
22

Duplicar posible:
PHP last day of the monthObtener el último día del mes?

¿Hay alguna función como $date->getMonthDays() o $date->getLastDayOfMonth() en PHP para obtener el número de días en un mes dado (o el último número de días)?

$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: gracias, votaron para cerrar, es un duplicado, lo siento por preguntar ...

+0

No sé PHP, pero en general, se puede obtener el último día por conseguir el primer día del próximo mes, entonces -1 –

+1

'(DateTimeObj) -> formato ('t');' le daría la cantidad de días en ese mes. –

+1

@EricYin es una buena idea, lo intentaré si no hay una función PHP nativa, muchas gracias. – gremo

Respuesta

5

t le da el número total de días del mes en curso. j le brinda el día actual del mes.

Utilizando modify y algunas sustracciones de format -la fecha y hora, puede llegar a fin de mes.

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

Es muy sencillo de conseguir la fecha del mes pasado

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

en marzo 3 vuelve

2011-02-28 
2011-02-1 
+0

Excelente, gracias! –

Cuestiones relacionadas