反转脚本中的日期顺序


Reverse date order in script

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

有人能帮我吗?

反向循环或使用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

array_reverse按照锡上的指示执行。

像这样尝试

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

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

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

$dates[$i] = $timestamp;

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

sort($dates,SORT_NUMERIC);

相反,你可以用rsort。

rsort($dates,SORT_NUMERIC);

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

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