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 Templates を使用しており、そのコードは次のとおりです。

      {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 関数を使用して日付を並べ替えます。

sort($dates,SORT_NUMERIC);

逆に rsort を使用できます。

rsort($dates,SORT_NUMERIC);

終了したら、配列を反復処理し、date() 関数を使用して元に戻します。

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