为什么
echo date("j/m/Y", strtotime("2015/01/31 00:00 next month"));
给出 2015年3月3日 并不是 28/02/2015
所有我想要的是下个月的今天日期,如果今天的日期无效,那么它会给我下个月的最后一天。
答案 0 :(得分:3)
$thisMonth = "2015-01-31 00:00";
$thisMonthDate = strtotime($thisMonth);
$nextMonthDate = strtotime($thisMonth . ' next month');
if (date('j', $thisMonthDate) !== date('j', $nextMonthDate)) {
$nextMonthDate = strtotime(date('Y-m-d H:i:s', $nextMonthDate) . ' last day of previous month');
}
echo date('Y-m-d H:i:s', $nextMonthDate), PHP_EOL;
答案 1 :(得分:2)
PHP在这里做的是:
首先它会在您的日期添加一个月,到达“2015/02/31”
然后它意识到这个日期不存在,并且它是“2015/02/28”之后的3天,以人类术语翻译为“2015/03/03”
查看here以解决您的问题,正如@kingkero建议的那样