关于计算当前同比日期
如果业务中有这样的需求,你可能很快就会想到,代码也许这样写:
echo date('Ymd',strtotime('20180907 -1 month'));
//output:...这都是些什么鬼,如果当前月比上一个月多,在多余的日子里去取上个月同期,会有问题。
?...当前很多人发现了这个问题,有兴趣可以看下专家解惑:
令人困惑的strtotime
引用下关键点就是date内部变化导致的结果:
先做-1 month, 那么当前是07-31, 减去一以后就是06-31...再做日期规范化, 因为6月没有31号, 所以就好像2点60等于3点一样, 6月31就等于了7月1
既然有问题,肯定就有人想到了解决问题的方式,我们看下面这段代码:
/**
* 计算上一个月的今天,如果上个月没有今天...引用自 https://yq.aliyun.com/ziliao/11301
我们一起分析下这段代码意思吧
1.获取上个月最后一天时间戳
$last_month_time = mktime(date("