1

好的?

我想在这里打一个计算日期,但是我没有得到..

会发生以下情况:

$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

有谁知道我如何解决这个问题?因为这很复杂..我没有想法......我想不出任何东西:\

4

3 回答 3

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>";

看到它在行动

于 2013-03-26T14:00:00.900 回答
0

找到该月最后一天的解决方法是:

 $lastDay = date("m-d-Y",(strtotime('next month',strtotime(date("m-01-Y"))) - 1)); 

希望它会有所帮助。

于 2013-03-26T13:44:21.343 回答
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
于 2013-12-31T02:50:03.503 回答