2013-06-24 45 views
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} 

任何人都可以請幫我這個嗎?

+0

看到['array_reverse()'](http://php.net/manual/en/function.array-reverse.php) – naththedeveloper

回答

3

無論是反向環路或使用array_reverse()

變回$array;

對於智者這很簡單,你不必甚至在PHP中創建這種功能,它可以在智者做的好。

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

檢查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 
+0

就這麼簡單!謝謝! –

+0

不客氣:)如果這個答案滿足你,你可以把它標記爲答案。 – Robert

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

沒有測試它,但應該工作:)

0

也許這樣做將是把日期在UTC(整數)形式最簡單的方法。

$dates[$i] = $timestamp; 

然後使用PHP排序功能對日期進行排序。

sort($dates,SORT_NUMERIC); 

您可以將rsort用於相反的。

rsort($dates,SORT_NUMERIC); 

當你完成後,遍歷你的數組,並使用date()函數轉換回來。

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