Как показать годы ч / б к конкретным датам

Я работаю над php. В моем проекте, когда студент регистрируется, он выбирает дату начала и окончания своего курса, например (2012/06/05)(2015/06/25), Теперь он представляет свои сборы через каждые шесть месяцев. Теперь я хочу, чтобы, когда студент заполнил форму, чтобы представить свои взносы, ему нужно только выбрать годы из тех, для которых он будет проходить курс, т.е. 2012,2013,2014 and 2015, Как это сделать.
Так может кто-нибудь, пожалуйста, покажи мне где-нибудь там.
Заранее спасибо.

0

Решение

Попробуй это:

$begin = date('Y', strtotime('2012-06-05'));
$end   = date('Y', strtotime('2015-06-25'));
$years = array();

while($begin <= $end){
$years[] = $begin++;
}

echo "<pre>";
print_r($years);

это дает:

Array
(
[0] => 2012
[1] => 2013
[2] => 2014
[3] => 2015
)

Этот $ years — это массив, содержащий все годы между двумя датами, введенными пользователем.

Надеюсь это поможет.
Мир! XD

2

Другие решения

Вам нужно использовать strtotime() для получения года от даты начала и окончания, а затем получить все годы между двумя годами как:

$start = date('Y', strtotime('2012/06/05'));
$end   = date('Y', strtotime('2015/06/25'));

$years = array();
for ($end = $start; $end < date('Y'); $end++) {
$years[] = $end;
}

echo "<pre>";
echo implode(",",$years); //2012,2013,2014,2015
1

Это можно сделать очень просто:

$start = new DateTime('2012/01/20');
$end = new DateTime('2015/01/20');

$years = range($start->format('Y'), $end->format('Y'));

<select name="year">
<?php foreach ($years as $year): ?>
<option value="<?= $year; ?>"><?= $year; ?></option>
<?php endforeach; ?>
</select>
0