二月的strtotime(February and strtotime)

2019-10-17 22:12发布

好的?

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

什么情况如下:

$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

有谁知道给我如何解决这个光? 因为这个复杂的...我的想法......我想不出任何东西:\

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

看到它在行动



Answer 2:

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

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

希望这将有助于。



Answer 3:

如果你想坚持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


文章来源: February and strtotime