好吧?
我正试着在这里计算一个日期,但是我没有得到..
发生的情况如下:
$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有人知道我是怎么解决这个问题的吗?因为这很复杂..。我没主意了..。我想不出任何东西:\
发布于 2013-03-26 22:00:01
$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>";See it in action
发布于 2013-03-26 21:44:21
查找一个月的最后一天的解决方法是:
$lastDay = date("m-d-Y",(strtotime('next month',strtotime(date("m-01-Y"))) - 1)); 希望这能有所帮助。
发布于 2013-12-31 10:50:04
如果你想坚持使用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-2013https://stackoverflow.com/questions/15638540
复制相似问题