在月末获得前一天

时间:2014-09-12 18:50:08

标签: php

现在,如果您在1月31日使用strtotime('1 month'),那么您将获得3月1日但我想知道是否有一种简单的方法,如果我在同一天运行相同的脚本而不是3月1日我可以得到2月28日。这可能吗?任何建议都将不胜感激。

由于

编辑:

对不起,我想我没有正确解释这个问题,我希望能够总共得到30天,除了当天不存在的月份。因此,例如,如果是1月31日,我希望能够获得2月28日,但如果是1月10日,我想要2月10日。

1 个答案:

答案 0 :(得分:2)

您可以尝试更详细的文字:

$date = new DateTime('last day of next month');
echo $date->format('Y-m-d');
// => 2014-10-31

修改

要回答您更新的问题,您可以从next month开始,并将其与last day of next month进行比较。如果next month大于last day of next month,请改为使用last day of next month

$date = new DateTime('next month');
if ($date > ($end = new DateTime('last day of next month'))) {
  $date = $end;
}