これが前月の最終日を見つけられない理由が少しわかりません。最終日付が作成される場合を除いて、すべてのステップが正しく機能しているようです。
<?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
期待どおり 2012-09-30 を返しています。ただし、2012 年 9 月 30 日に変換しようとすると、2012 年$newLastDateOfMonth
10 月 1 日に返されます。
編集: 2013 年 1 月 1 日の時点で、これらのいずれかを使用している場合、date("t/m/Y", strtotime("last month"));
またはdate('Y-m-d', strtotime('last day of previous month'));
これらのいずれかがまだ実行可能である場合、つまり、年の変化を説明しますか?