脚本中的反向日期顺序

时间:2013-06-24 07:27:20

标签: php

我有一个用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}

有人可以帮我解决这个问题吗?

6 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

array_reverse做了它在锡上的说法。

答案 2 :(得分: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);
}

答案 3 :(得分:0)

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

答案 4 :(得分:0)

for ($i = $end; $i >= $start; $i--) {
        $array[]['year'] = $i;
}

还没有测试过,应该工作:)

答案 5 :(得分:0)

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

$dates[$i] = $timestamp;

然后使用PHP排序功能对日期进行排序。

sort($dates,SORT_NUMERIC);

你可以使用相反的rsort。

rsort($dates,SORT_NUMERIC);

完成后,遍历数组并使用date()函数进行转换。

echo (date('m-d-Y', $dates[$i]));