在包含
的脚本中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')?
答案 0 :(得分:8)
您应该使用mktime()功能:
<?php
echo date('Y-m-d', mktime(0,0,0,date('n')-1,1,date('Y'))); //2012-03-01
?>
的 See In Action 强>
答案 1 :(得分:2)
date('Y-m-d', strtotime('first day of -1 month'))
在PHP 7.0上正常工作
答案 2 :(得分:1)
这是来自PHP 5.2.17的known bug
答案 3 :(得分:0)
很简单:
date('Y-m-01')
每个月的第一天始终为1。