我想得到上个月的约会.我写了这个:
$prevmonth = date('M Y');
Run Code Online (Sandbox Code Playgroud)
这给了我当前的月/年.我不知道我是否应该使用strtotime,mktime.什么到时间戳?我是否需要在重置后添加一些内容,以便在我网站上的所有时间戳的所有内容中将日期设置为上个月?我正在尝试RTM,但我很难弄清楚这一点.
Ozz*_*ech 195
上个月约会很简单
echo date("Y-n-j", strtotime("first day of previous month"));
echo date("Y-n-j", strtotime("last day of previous month"));
Run Code Online (Sandbox Code Playgroud)
11月3日回归
2014-10-1
2014-10-31
Run Code Online (Sandbox Code Playgroud)
zom*_*bat 29
echo strtotime("-1 month");
Run Code Online (Sandbox Code Playgroud)
这将完全输出上个月的时间戳.之后你不需要重置任何东西.如果您之后想要英文格式,可以使用date()格式化时间戳,即:
echo date("Y-m-d H:i:s",strtotime("-1 month"));
Run Code Online (Sandbox Code Playgroud)
Sch*_*els 19
$prevmonth = date('M Y', strtotime("last month"));
Run Code Online (Sandbox Code Playgroud)
Fur*_*ury 10
答案不正确:
$lastMonth = date('M Y', strtotime("-1 month"));
$lastDate = date('Y-m', strtotime('last month'));
Run Code Online (Sandbox Code Playgroud)
原因是当前月份为30天以上,但前一个月为29天,较少$ lastMonth将与当月相同.
例如
If $currentMonth = '30/03/2016';
echo $lastMonth = date('m-Y', strtotime("-1 month")); => 03-2016
echo $lastDate = date('Y-m', strtotime('last month')); => 2016-03
Run Code Online (Sandbox Code Playgroud)
正确答案是:
echo date("m-Y", strtotime("first day of previous month")); => 02-2016
echo sprintf("%02d",date("m")-1) . date("-Y"); => 02-2016
echo date("m-Y",mktime(0,0,0,date("m")-1,1,date("Y"))); => 02-2016
Run Code Online (Sandbox Code Playgroud)
小智 7
如果你想在上个月获得,那么你可以使用如下
$prevmonth = date('M Y', strtotime('-1 months'));
Run Code Online (Sandbox Code Playgroud)
如果你想获得上个月的同一天,那么你可以像下面一样使用..
$prevmonth = date('M Y d', strtotime('-1 months'));
Run Code Online (Sandbox Code Playgroud)
如果你想获得上个月的最后一个日期,那么你可以使用如下...
$prevmonth = date('M Y t', strtotime('-1 months'));
Run Code Online (Sandbox Code Playgroud)
如果你想获得上个月的第一个日期,那么你可以使用如下...
$prevmonth = date('M Y 1', strtotime('-1 months'));
Run Code Online (Sandbox Code Playgroud)
当前几个月短于当前月份时发现这个错误.
echo date("Y-m-d H:i:s",strtotime("-1 month"));
Run Code Online (Sandbox Code Playgroud)
试试3月30日,您将获得2012-03-01而非2012-02 ...
努力寻求更好的解决方案......
echo date('Y',strtotime("-1 year")); //last year<br>
echo date('d',strtotime("-1 day")); //last day<br>
echo date('m',strtotime("-1 month")); //last month<br>
Run Code Online (Sandbox Code Playgroud)