2013-01-21 2 views
2

Я пытаюсь изменить год на этой форме кредитной карты. Сейчас он показывает только 2014-2022. Я "м пытается изменить формулу года начать в 2013 годуизменение год на кредитной карте форма

<?php $year = date ("Y"); $i = 1;?> 
      <option value="" selected="selected">Please Select a Year</option> 
      <?php while($i < 10) { $year += 1; $i++;?> 
      <option value="<?=$year?>"> 
      <?=$year?> 
      </option> 
      <?php } ?> 
+0

'$ year = date (" Y ") - 1;' - что мешает вам сделать ** очевидное **? – hakre

ответ

1

Переместите счетчик до конца вашего цикла:

<?php $year = date ("Y"); $i = 1;?> 
<option value="" selected="selected">Please Select a Year</option> 
<?php while($i < 10) { ?> 
<option value="<?=$year?>"> 
<?=$year?> 
</option> 
<?php $year += 1; $i++; } ?> 
+0

спасибо! Все так полезно – Suno360

4

$i нужно начинать с 0, так что первый год 2013 + 0, а не 2013 + 1.

<?php $year = date ("Y"); $i = 0;?> 

еще лучше использовать for цикл:

<? for ($year = date("Y"); $year < date("Y") + 10; ++$year) { ?> 
    <option value="<?= $year ?>"><?= $year ?></option> 
<? } ?> 
0

Просто используйте цикл for с годом в качестве счетчика.

<option value="" selected="selected">Please Select a Year</option> 
<?php for($year = (int)date("Y"); $year < ((int)date("Y"))+10; $year++): ?> 
    <option value="<?=$year?>"><?=$year?></option> 
<?php endfor; ?> 
</option> 
+0

большое спасибо !!! – Suno360

0

Другой подход;

$years = range(date('Y'), date('Y') + 10); 
while ($year = array_shift($years)) { 
    printf("<option value=\"%d\">%d</option>\n", $year, $year); 
} 
// or 
$years = range(date('Y'), date('Y') + 10); $i = 0; 
while ($year [email protected] $years[$i++]) { 
    printf("<option value=\"%d\">%d</option>\n", $year, $year); 
} 
Смежные вопросы