好吗?
我试图在这里计算一个计算日期,但我没有得到......
以下是:
$AtualMenos3 = date("m-d-Y", strtotime("2013-03-31 -3 month"));
$AtualMenos2 = date("m-d-Y", strtotime("2013-03-31 -2 month"));
$AtualMenos1 = date("m-d-Y", strtotime("2013-03-31 -1 month"));
$AtualMes = date("m-d-Y", strtotime("2013-03-31"));
正确应该是:
03-31-2013
02-28-2013
01-31-2013
12-31-2012
然而,这个PHP计算日期错误,因为当月份是2月(只有28天)时计算出错了。
实际输出:
03-31-2013
03-03-2013
01-31-2013
12-31-2012
有谁知道如何解释我如何解决这个问题?因为这很复杂......我没有想法......我什么都想不到:\
答案 0 :(得分:1)
$datetime = new DateTime('2013-03-31');
$datetime->modify('-1 month');
echo $datetime->format('Y-m-t') . "<br>";
$datetime->modify('-1 month');
echo $datetime->format('Y-m-t') . "<br>";
$datetime->modify('-1 month');
echo $datetime->format('Y-m-t') . "<br>";
答案 1 :(得分:0)
找到该月最后一天的解决方法是:
$lastDay = date("m-d-Y",(strtotime('next month',strtotime(date("m-01-Y"))) - 1));
希望它会有所帮助。
答案 2 :(得分:0)
如果您想坚持strtotime()
,可以通过减去下个月的某一天轻松计算一个月的最后一天。
echo date("m-d-Y", strtotime("Apr 2013 -1 day")); // yields 03-31-2013
echo date("m-d-Y", strtotime("Mar 2013 -1 day")); // yields 02-28-2013
echo date("m-d-Y", strtotime("Feb 2013 -1 day")); // yields 01-31-2013