如何显示特定日期的b / w年份

时间:2016-03-14 05:54:11

标签: php mysql date 2-digit-year

我正在开发一个php。在我的项目中,当学生注册时,他选择课程的开始和结束日期,例如(2012/06/05) - (2015/06/25)。现在他每六个月提交一次费用。现在我想做的是,当学生填写表格提交他的费用时,他只需要选择那些他将参加课程的年份,即2012,2013,2014 and 2015。怎么做。
那么有人可以在那里向我展示。
提前谢谢。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分: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>