现在,如果您在1月31日使用strtotime('1 month')
,那么您将获得3月1日但我想知道是否有一种简单的方法,如果我在同一天运行相同的脚本而不是3月1日我可以得到2月28日。这可能吗?任何建议都将不胜感激。
由于
编辑:
对不起,我想我没有正确解释这个问题,我希望能够总共得到30天,除了当天不存在的月份。因此,例如,如果是1月31日,我希望能够获得2月28日,但如果是1月10日,我想要2月10日。
答案 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;
}