我正在制作一个选择框,其中包含过去 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;