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