Strtotime不起作用,并将1970年和2019年回馈到2024年


Strtotime doesn't work and gives back 1970 and 2019 to 2024

我正在制作一个选择框,其中包含过去 18 年的选项,并且每次用户单击按钮时都会附加此选择。

我创建了一个选择框,它使用 php 和选择中的代码来执行此操作:

<?php
    for($x=1; $x<=18; $x++){
       $year = date('Y', strtotime(date('Y').'-'.$x.'year'));
       echo '<option value='.$year.'>'.$year.'</option>';
    }
?>

然而,它给了我这个:http://puu.sh/nciOj/6fbcd52435.png。

我尝试过查看其他帖子,但似乎都没有帮助,我也尝试过在互联网上的其他地方寻找。我试过拿出year但没有用。我还尝试将$x++;移动到 for 循环内部。

我想发生的是,当你点击选择框时,它会显示你过去的18年。如果这是一个非常简单或非常愚蠢的问题,我很抱歉!

您当前正在将格式不正确的字符串传递给strtotime(),导致它返回不正确的时间戳。

date('Y') . '-' . $x . 'year'的字面意思是2016-1year, 2016-2year等等。您需要做的就是使用 date('Y') 获取当前年份,然后从中减去$x。所以2016 - 1, 2016 - 2 etc.

$year = date('Y') - $x;