Как сгенерировать год в Smarty? - PullRequest
5 голосов
/ 16 февраля 2010

Как мне создать список выбора с данным годом до этого года? я сделал это

{assign var=thisyear value=$smarty.now|date_format:"%Y"}
{if !$firstyear}
 {assign var=firstyear value="2003"}
{/if}

{if !$loop}{assign var=loop value=$thisyear}{/if}
<select name='{$id|default:year}' id={$id|default:year} style='width:70px;'>

 {section name=yearValue max=$year start=$firstyear loop=$thisyear step=-1}
  <option{if $year==$smarty.section.yearValue.index} selected="selected"{/if}>{$smarty.section.yearValue.index}</option>
 {/section}

</select>

к сожалению, это дает 0 до 2003, но я хочу, чтобы оно генерировало 2003 до 2010, как я могу это сделать?

Ответы [ 5 ]

4 голосов
/ 05 октября 2010
{assign var=thisyear value=$smarty.now|date_format:"%Y"}
    {assign var=endYear value=$thisyear+6}
    <select>
        {section name=yearValue start=$thisyear loop=$endYear step=1}<option>{$smarty.section.yearValue.index}</option>
        {/section}
    </select>
4 голосов
/ 16 февраля 2010

Посмотрите на html_select_date

1 голос
/ 16 февраля 2010
{section name=years start=2003 loop=2011 step=1}
    {$smarty.section.years.index}
{/section}
0 голосов
/ 11 февраля 2015

{html_select_date start_year = "+ 0" end_year = "+ 0" field_order = "DMY" day_value_format = "% 02d"}

, если вы хотите, чтобы в этом году начался год только в том случае, если вы дадите значение в минус, например, «-1», чем в предыдущем году.

0 голосов
/ 23 февраля 2010
{assign var=firstyear value="2003"}
{assign var=thisyear value=$smarty.now|date_format:"%Y"}

{section name=yearValue start=$thisyear loop=$firstyear step=-1}
  {$smarty.section.yearValue.index}
{/section}
...