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) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。