在PHP中查找上个月的最后一天

前端之家收集整理的这篇文章主要介绍了在PHP中查找上个月的最后一天前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有点不确定为什么这不能找到上个月的最后一天.每个步骤似乎都能正常工作,除非最终日期被创建.
<?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日返回.我似乎在哪里出错?

编辑:如果使用日期(“t / m / Y”,strtotime(“上个月”));或日期(‘Y-m-d’,strtotime(“上个月的最后一天”));在2013-01-01期间,这两个项目中哪一项仍然可行,那么它们会在一年中变现吗?

echo date('Y-m-d',strtotime('last day of prevIoUs month'));
//2012-09-30

要么

$date = new DateTime();
$date->modify("last day of prevIoUs month");
echo $date->format("Y-m-d");

后来编辑:php.net documentation – relative formats for strtotime(),DateTime and date_create()

猜你在找的PHP相关文章