我有一个用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 :(得分: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]));