使用PHP计算上一个月的今天

来源:互联网 发布:键盘手风琴软件 编辑:程序博客网 时间:2024/04/28 14:40

转载自:http://www.phppan.com/2011/06/php-last-month-today/

一日,遇到一个问题,求上一个月的今天。 最开始使用 strtotime(”-1 month”) 函数求值,发现有一个问题,月长度不一样的月份的计算结果有误。 比如:2011-03-31,得到的结果是2011-03-03。先不追究什么问题,先看如何解决问题。 此时,想起PHP中有一个mktime函数,于是写了如下代码:

当执行时,发现结果和strtotime的结果是一样的。

还是基于这个函数,既然无法直接操作月,那么从天入手,得到上一个月,然后再使用date拼接数据。如下代码:

但是此时又有了另一个问题,不存在2011-02-31这样的日期,怎么办?现在的需求是对于这样的日期显示当月最后一天。 如下代码:

这里需要注意一点: date(”Y-m”, $last_month_time) . “-d”这段代码。在写代码的过程中如果写成了 “Y-” . date(”m”, $last_month_time) . “-d” 则在跨年的时间上有问题。 这点还是在写这篇文章时发现的。

除了这种方法,还可以先算出年月日再拼接字符串,这里就是纯粹的字符串操作了。

原创粉丝点击