在包含
date('Y-m-d', strtotime('first day of last month'))
在版本 5.3.10 (localhost) 中,例如,我得到“2012-03-01”。
在 5.2.17 版(远程主机)中,我得到“1969-12-31”。
是否有一个表达式将返回两个版本的预期结果(例如,'2012-03-01')?
您应该使用mktime()函数:
<?php
echo date('Y-m-d', mktime(0,0,0,date('n')-1,1,date('Y'))); //2012-03-01
?>
date('Y-m-d', strtotime('first day of -1 month'))
在 PHP 7.0 上运行良好
这是PHP 5.2.17 中的一个已知错误
很简单:
date('Y-m-01')
任何一个月的第一天总是 1。