1

我目前正在使用一个用 PHP 编写的招聘脚本。在我们的注册页面上有一个出生日期的下拉菜单,您可以在这里看到它的实际效果: http ://www.v3recruitment.com/users/register.php

如您所见,日期从 1900 年开始,我想做的是颠倒日期顺序。我想我已经找到了生成日期的代码,但是我的 PHP 还不足以弄清楚如何让它以相反的顺序显示日期,这里是代码:

function FetchYears($type){
    $start = 1901;
    $end = date("Y");
    for($i=$start;$i<=$end;$i++){
        $array[]['year'] = $i;
    }
    return $array;
}

前端使用 Smarty 模板,代码如下:

      {section name="c" loop=$dob_years}
      <option value="{$dob_years[c].year}" {get_value field=select selectvalue=$dob_years[c].year fieldname="dob_year"}>{$dob_years[c].year}</option>
      {/section}

谁能帮我解决这个问题?

4

6 回答 6

3

反向循环或使用array_reverse()

更改$array;返回return array_reverse($array);

对于 smarty,它非常简单,您甚至不必在 PHP 中创建此函数,它也可以在 smarty 中完成。

{foreach $dob_years as $entry)
    <option value="{$entry.year}">{$entry.year}</option>
{/foreach}

在 smarty 中检查HTML_SELECT_DATE或仅使用下面的代码不需要任何额外的 php 代码。

 {assign var=currentYear value=$smarty.now|date_format:"%Y"}
 {assign var=fromYear value="2003"}
 {section name=years start=$currentYear step=-1 loop=$fromYear}
    {$smarty.section.years.index}
 {/section
于 2013-06-24T07:29:11.507 回答
2

array_reverse它在锡上说了什么。

于 2013-06-24T07:29:06.910 回答
1

像这样试试

function FetchYears($type){
    $start = date("Y");
    $end = 1901;
    for($i=$start;$i>=$end;$i--){
        $array[]['year'] = $i;
    }
    return $array;
}

或者只是array_reverse在返回你的数组时使用

function FetchYears($type){
    $start = 1901;
    $end = date("Y");
    for($i=$start;$i<=$end;$i++){
        $array[]['year'] = $i;
    }
    return array_reverse($array);
}
于 2013-06-24T07:28:58.693 回答
0
function FetchYears($type){
    $start = date("Y");
    $end = 1901;
    for($i=$start;$i>=$end;$i--){
        $array[]['year'] = $i;
    }
    return $array;
}
于 2013-06-24T07:29:08.677 回答
0
for ($i = $end; $i >= $start; $i--) {
        $array[]['year'] = $i;
}

还没有测试过,应该可以的:)

于 2013-06-24T07:29:21.973 回答
0

可能最简单的方法是将日期设置为 UTC(整数)格式。

$dates[$i] = $timestamp;

然后使用 PHP 排序函数对日期进行排序。

sort($dates,SORT_NUMERIC);

您可以使用 rsort 相反。

rsort($dates,SORT_NUMERIC);

完成后,遍历您的数组并使用 date() 函数隐蔽返回。

echo (date('m-d-Y', $dates[$i]));
于 2014-02-01T14:57:59.800 回答