Trouver Dernier Jour du Mois Précédent en PHP

Je suis un peu incertain pourquoi ce n'est pas en mesure de trouver le dernier jour du mois précédent. Toutes les étapes semble fonctionner correctement, sauf lorsque la date finale est créé.

<?php

$currentMonth = date('n');
$currentYear = date('Y');

if($currentMonth == 1) {
    $lastMonth = 12;
    $lastYear = $currentYear - 1;
}
else {
    $lastMonth = $currentMonth -1;
    $lastYear = $currentYear;
}

if($lastMonth < 10) {
    $lastMonth = '0' . $lastMonth;
}

$lastDayOfMonth = date('t', $lastMonth);

$lastDateOfPreviousMonth = $lastYear . '-' . $lastMonth . '-' . $lastDayOfMonth;

$newLastDateOfMonth = date('F j, Y', strtotime($lastDateOfPreviousMonth));

?>

$lastDateOfPreviousMonth est de retour 2012-09-30 comme prévu; cependant, après avoir essayé de le convertir au 30 septembre, 2012 - $newLastDateOfMonth est de retour le 1er octobre 2012. Où ai-je l'air d'aller mal?

EDIT: Si vous utilisez date("t/m/Y", strtotime("last month")); ou date('Y-m-d', strtotime('last day of previous month')); sera l'une de ces encore être viable compte tenu de 2013-01-01, c'est à dire vont-ils tenir compte du changement dans l'année?

  • Mon calendrier a seulement 30 jours (en septembre et en avril, juin et novembre) - tout le reste, 31 - sauf pour le mois de février (où l'année % 4 ? 28 : 29 est une bonne approximation, mais ne scanne pas, sans parler de la rime)
  • Haha oui j'ai juste pris aussi, juste une faute de frappe - il fixe.