您的位置 首页 php

php通过strtotime("-1 month")获取上个月的月份难道有错吗?

这篇文章我想和大家讨论一个问题,我想获取上个月的月份,通过strtotime(“-1 month”)获取到的数据是不对的,我给大家举个例子,如果有想测试真伪性的同学可以在php中运行一下然后看看结果。

 $last_month = date("Y-m",strtotime("-1 month"));
var_dump($last_month);  

在平时的开发当中我都是用上述代码来获取上个月的月份,但是就在昨天2021/7/31,通过上述代码获取到的结果竟然是07,难道不应该是06吗?这让我显得一头雾水。同学可以直接把电脑的时间改为2021/7/31然后在程序里运行检测结果。

当发现不对之后我就去百度查了资料,得出了一种解决方案,代码如下:

 $last_month = date("Y-m",strtotime(date("Y-m")." -1 month"));
var_dump($last_month);  

其实就是在日期转时间戳的时候把当前的月份传进去,这样一来问题是解决了,但是疑问也一直缠绕着我,我一直以为这两种写法没有什么区别啊,有没有小伙伴能给解答一下。

刚一开始我还以为会不会是7月份有31天的缘故,所以我把电脑的时间改为8月31号,但是用第一种代码

 $last_month = date("Y-m",strtotime("-1 month"));  

得到的结果依然是07,我就更加迷惑了,为什么单单7月31号得出的结果不对呢?

今天我把这种情况给大家分享一下,一来可以给遇到同样问题的小伙伴一种解决方法,二来也是希望清楚这种机制的朋友能够给我解释下原因。

文章来源:智云一二三科技

文章标题:php通过strtotime("-1 month")获取上个月的月份难道有错吗?

文章地址:https://www.zhihuclub.com/152479.shtml

关于作者: 智云科技

热门文章

网站地图