我有点不确定为什么无法找到上个月的最后一天。每个步骤似乎都正常工作,除非创建最终日期。
<?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 日之后 -$newLastDateOfMonth
将返回 2012 年 10 月 1 日。我似乎哪里出错了?
编辑:如果在 2013 年 1 月 1 日使用date("t/m/Y", strtotime("last month"));
或date('Y-m-d', strtotime('last day of previous month'));
其中任何一个仍然可行,即它们会考虑到年份的变化吗?