0.说明
-
凯子:翔逼你知道3月31日加1个月是几月几号嘛? -
翔逼:当然是4月30号,泥484傻~ -
凯子:真的嘛?你试试下面的代码。
<?php
$date = '20160331';
$date = strtotime($date);
echo date('Y-m-d', strtotime('+1 month', $date));
-
翔逼:啊咧咧?怎么会是5月1日? -
凯子:嘿嘿,自己去了解吧。
1.时间都去哪了
0.说明
在PHP中,加1个月是加自身月份天数。所以,当3月31日加一个月的时候,就变成了加31天,也就是5月1日。
在实际开发中对时间进行处理的时候,在月份的最后1天处理上,一个不小心就会踩到这个坑啦。
1.本月份的第一天
代码
$date = '20160330';
echo date('Y-m-01', strtotime($date));
输出
2016-03-01
2.本月份的最后一天
代码
$date = '20160328';
$firstDay = date('Y-m-01', strtotime($date));
echo date('Y-m-d', strtotime('+1 month -1 day', strtotime($firstDay)));
输出
2016-03-31
3.下月份的第一天
代码
$date = '20160328';
$firstDay = date('Y-m-01', strtotime($date));
echo date('Y-m-d', strtotime('+1 month', strtotime($firstDay)));
输出
2016-04-01
4.下月份的最后一天
代码
$date = '20160328';
$firstDay = date('Y-m-01', strtotime($date));
echo date('Y-m-d', strtotime('+2 month -1 day', strtotime($firstDay)));
输出
2016-04-30
5.上月份的第一天
代码
$date = '20160328';
$firstDay = date('Y-m-01', strtotime($date));
echo date('Y-m-d', strtotime('-1 month', strtotime($firstDay)));
输出
2016-02-01
6.上月份的最后一天
代码
$date = '20160328';
$firstDay = date('Y-m-01', strtotime($date));
echo date('Y-m-d', strtotime('-1 day', strtotime($firstDay)));
输出
2016-02-29
2.结论
-
PHP会根据当前月份来确定1个月为多少天。 - 对于
最后1天的计算,可以转化为对第1天的计算。 - 注意
每个月的天数可能为28,29,30或31。
一起成长
在困惑的城市里总少不了并肩同行的 伙伴 让我们一起成长。
- 如果您想让更多人看到文章可以点个
点赞。 - 如果您想激励小二可以到 Github 给个
小星星。 - 如果您想与小二更多交流添加微信
m353839115。
本文原稿来自 PushMeTop
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。