2012-01-18 13 views
22

Eventuali duplicati:
PHP last day of the monthRicevi l'ultimo giorno del mese?

C'è qualche funzione come $date->getMonthDays() o $date->getLastDayOfMonth() in PHP per ottenere il numero di giorni in un dato mese (o l'ultimo numero del giorno)?

$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: grazie, votato per chiudere, si tratta di un duplicato, mi spiace per chiedere ...

+0

Non so PHP, ma in generale, è possibile ottenere l'ultimo giorno per ottenere prima giornata del mese successivo poi -1 –

+1

'(DateTimeObj) -> format ('t');' ti darebbe il numero di giorni in quel mese. –

+1

@EricYin è una buona idea, proverò se non c'è alcuna funzione PHP nativa, grazie mille. – gremo

risposta

5

t ti dà il numero totale di giorni nel mese corrente. j ti dà il giorno corrente del mese.

Utilizzo di modify e sottrazione da format -in data/ora, è possibile arrivare alla fine del mese.

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

E 'semplice per ottenere data mese scorso

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

a marzo 3 restituisce

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

Eccellente, grazie! –

Problemi correlati