我正在使用date()
和strtotime()
功能在下拉列表中显示接下来的3个月.
PHP代码:
echo date("m/Y",strtotime("+0 months"));
echo date("m/Y",strtotime("+1 months"));
echo date("m/Y",strtotime("+2 months"));
Run Code Online (Sandbox Code Playgroud)
但是,如果脚本在服务器日期为30或31时运行,则下个月(即2月)将显示为3月.即上面的脚本应该返回
01/2012
02/2012
03/2012
Run Code Online (Sandbox Code Playgroud)
但是,它实际上显示了,而不是那样
01/2012
03/2012
03/2012
Run Code Online (Sandbox Code Playgroud)
那是因为2月没有30或31,所以脚本将"31/02"翻译成"01/03".
我已经strtotime()
在php.net上阅读了这个页面,这个问题已经提出,但是还没有任何有用的解决方案.那么有人可以帮我找一个解决这个问题的简单方法吗?提前致谢!
昨天工作正常,没有更改代码.
echo date("M", strtotime("-3 month", time()) );
echo date("M", strtotime("-2 month", time()) );
echo date("M", strtotime("-1 month", time()) );
echo date("M", time());
Run Code Online (Sandbox Code Playgroud)
它昨天产生的产量正如你所料 - 即4月,5月,6月,7月
今天它与五月五月七月相呼应
有任何想法吗?
提前致谢.
今天是5月31 日
$currentM = date('m');
// 05
$nextM = date('m', strtotime('+1 month'));
// 07
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我不明白为什么下个月会给予07
.