在前端有时候需要让用户选择年份,固定的写上几个option去选择固然可以,问题是你年份太长了也不行,我选择现在的年份,为什么我还要拉到2000年开始?为什么2018年要显示出来?
用smarty的section可以指定输出你提供的年份,而且可以以当前年份为基准,往前倒,往后推,你都可以控制。
先获取当前的年份
<{assign var="year" value=$smarty.now|date_format:'%Y'}>
然后去规定往前和往后的梯度
<{assign var="nowyear" value=$year+2}>
<{assign var="lastyear" value=$year-2}>
然后用section去把他们遍历出来
<{section name=year start=$lastyear step=1 loop=$nowyear}>
<option value="<{$smarty.section.year.index}>" <{if $smarty.section.year.index eq $year}>selected<{/if}>><{$smarty.section.year.index}>年</option>
<{/section}>
现在是2013年,以上的例子section出来的就是2011-2014。