微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 从1月份开始使用1个月时的`strtotime`错误

我正在尝试制作一个带有多个标签的ajax日历,用于之前输入的日期范围.
但是例如:

我想要下个月,它打印行军而不是2月

$start= "2013-01-31";
$current =  date('n', strtotime("+1 month",$start)) //prints 3

我认为这是因为2014年2月是28并且从开始月份开始增加31个基数,但为什么呢?

解决方法:

您正试图将一个添加到2013-01-31的日期.它应该给2013年2月31日,但由于日期不存在,它将进入下一个有效月份(即3月).

您可以使用以下解决方法

$current = date('n', strtotime("first day of next month",strtotime($start)));

使用DateTime类:

$date = new DateTime('2013-01-31');
$date->modify('first day of next month');
echo $date->format('n');

这将正确输出2.

Demo!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐