PHP strtotime获取给定年份的最后一天

时间:2018-10-15 14:18:33

标签: php

如何使用strtotime获取一年中的最后一天作为参数?

我尝试这样做,但是最后几天的结果不正确:

$yearEnd2015 = date('Y-m-d', strtotime('last day of december this year -3'));
    $yearEnd2016 = date('Y-m-d', strtotime('last day of december this year -2'));
    $yearEnd2017 = date('Y-m-d', strtotime('last day of december this year -1'));
    $yearEnd     = date('Y-m-d', strtotime('last day of december this year'));

    echo " <br>2015 : ".$yearEnd2015;
    echo " <br>2016 : ".$yearEnd2016;
    echo " <br>2017 : ".$yearEnd2017;
    echo " <br>2018 : ".$yearEnd;

5 个答案:

答案 0 :(得分:2)

您可以这样操作,只需将年份(12月31日)的最后一天发送到strtotime函数,例如获取2015年最后一天的日期名称:

$yearEnd2015 = date('l', strtotime('2015-12-31'));
echo $yearEnd2015;

或者您可以将所需的年份存储在变量中(如果要在函数中使用它或年份会动态更改):例如,获取2000年至今的所有最近的日期名称:

$year = 2000;
while($year++ <= 2018) {
  $yearEnd = date('l', strtotime($year . '-12-31'));
  echo $yearEnd . '<br />';
}

希望我进一步推动了你。

答案 1 :(得分:1)

我认为您可以从用户输入中获得收益。你提到这个

$lastdate="-12-31";
$year=$_POST['year'];//lets say you get yearr from post
$day=date('l',strtotime($year.$lastdate));
echo $day;

答案 2 :(得分:1)

您甚至不需要strtotime(即使您可以肯定使用它)。如果您将年份作为输入参数:

$year = '2018';
$lastday = date($year.'-12-31');
echo $lastday;

这是一个简单的技巧,仅在您实际建立相同的日历日期且仅更改年份时才起作用。但是可以满足您的需求吗?

答案 3 :(得分:1)

echo date('l',strtotime(date('Y')));

答案 4 :(得分:1)

您需要编写这样的代码

$yearEnd2015 = date('Y-m-d D', strtotime('2015-12-31'));
$yearEnd2016 = date('Y-m-d D', strtotime('2016-12-31'));
$yearEnd2017 = date('Y-m-d D', strtotime('2017-12-31'));
$yearEnd     = date('Y-m-d D', strtotime('2018-12-31'));

echo " <br>2015 : ".$yearEnd2015;
echo " <br>2016 : ".$yearEnd2016;
echo " <br>2017 : ".$yearEnd2017;
echo " <br>2018 : ".$yearEnd;