PHP检查in_array年份数

时间:2017-05-03 14:01:28

标签: php

我正在尝试从数据中创建一个用户bithyear。但我在这里有一个问题。

所以我想查看发布的年份in_array。用户可以选择从1950年到2017年的一年。我使用了以下PHP代码。

<select name="birth_year" id="year" class="t1-select">
   <option value="">Year</option>
     <?php  for ($i=1950; $i<date('Y'); $i++) { ?>
        <option value="<?php echo $i; ?>">
           <?php echo $i; ?>
        </option>
     <?php } ?>
</select>

现在您知道选项值为1950,1951,1952,...,2014,2015,2016,2017

您知道用户可以从开发者控制中更改选项值。这意味着用户可以发布100000。我想用php检查这几年。

我知道我可以使用以下数组

    $birthMonth = array( "1950", "1951", "1952", "1953", "1954", "1955",....,"2014,"2016","2017"");

    if(in_array($_POST['birth'], $birthMonth)){}

这意味着我需要写这么多年份。我的问题是:如何查看已发布的年数in_array

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

只需使用range()为您动态构建多年的数组:

if(in_array($_POST['birth'], range(1950, date("Y")))){}

您可以使用date("Y")始终获取当前年份。您可以随时使用其他约会魔法将其限制在某个范围内,例如&#34; 10年前&#34;。

if(in_array($_POST['birth'], range(1950, date("Y", strtotime('-10 years'))))){}

答案 1 :(得分:2)

你不需要array这么简单的任务,即:

if(!empty($_POST['birth']))
{
    $bday = $_POST['birth'];
    if ($bday >= 1950 and $bday <= date("Y"))
    {
      # do something
    }
}