我在开发过程当中遇到这么这个问题,由于赶进度,没有记下来处理方案,在鸟哥的博客看到原理分析,很到位!平时开发中老是急着处理问题,没有深刻分析和记录问题。
今天是2018-07-31 执行代码:date("Y-m-d",strtotime("-1 month"))
输出是2018-06-01?html
var_dump(date("Y-m-d", strtotime("2017-06-31"))); //输出2017-07-01
只要涉及到大小月的最后一天, 均可能会有这个问题code
var_dump(date("Y-m-d", strtotime("-1 month", strtotime("2017-03-31")))); //输出2017-03-03 var_dump(date("Y-m-d", strtotime("+1 month", strtotime("2017-08-31")))); //输出2017-10-01 var_dump(date("Y-m-d", strtotime("next month", strtotime("2017-01-31")))); //输出2017-03-03 var_dump(date("Y-m-d", strtotime("last month", strtotime("2017-03-31")))); //输出2017-03-03
PHP5.3以后的版本处理方式
”first day of” 和 “last day of”, 也就是你能够限定好不要让date自动”规范化”htm
var_dump(date("Y-m-d", strtotime("last day of -1 month", strtotime("2017-03-31")))); //输出2017-02-28 var_dump(date("Y-m-d", strtotime("first day of +1 month", strtotime("2017-08-31")))); ////输出2017-09-01 var_dump(date("Y-m-d", strtotime("first day of next month", strtotime("2017-01-31")))); ////输出2017-02-01 var_dump(date("Y-m-d", strtotime("last day of last month", strtotime("2017-03-31")))); ////输出2017-02-28