0

我正在研究一个 php。在我的项目中,当学生注册时,他选择了课程的开始和结束日期,例如(2012/06/05)- (2015/06/25)。现在他每六个月提交一次费用。现在我想做的是,当学生填写表格提交他的费用时,他只需要从他将要完成课程的那些年份中选择年份,即2012,2013,2014 and 2015。怎么做。
所以任何人都可以告诉我那里的某个地方。
提前致谢。

4

3 回答 3

2

尝试这个:

$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

于 2016-03-14T06:06:25.397 回答
1

您需要使用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
于 2016-03-14T06:05:27.330 回答
0

这可以很容易地完成:

$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>
于 2016-03-14T11:02:20.007 回答