2012-10-01 54 views
5

可能重复:
How to increment date with 1 (day/year) in PHP?自动递增年环

林真的不知道从哪里开始与这一点,但我尝试做了一年的开始,在1928年,并在停止1948年和每年增加一年,所以自2012年以来的日期范围是1928年至1948年,2013年将是1929年 - 1949年和2014年将是1930年至1950年,等等......

现在,我只是有一个基本的循环来开始和停止这些年,但它不是太动态,就像我说的那样,在空白处开始其他日期('Y')+1。

for($i=1928;$i<=date('Y');$i++) 
{ 
    echo '<option value='.$i.'>'.$i.'</option>'; 
    if($i == '1948'){break;} 
} 

回答

12

因此,您希望它在当前年份减去84和当前年份减去64之间?使用此代码:

$firstYear = (int)date('Y') - 84; 
$lastYear = $firstYear + 20; 
for($i=$firstYear;$i<=$lastYear;$i++) 
{ 
    echo '<option value='.$i.'>'.$i.'</option>'; 
} 

编辑:更新的性能。今年是在循环之前确定的(根据Pitchinnate的评论)。

+0

看起来像今年开始在他的例子也发生了变化 – wgcrouch

+0

啊是啊,谢谢:

所以,像我们可以写代码。刚刚更新了我的样品 –

+0

谢谢你,完美! – Suzed

2

试试这个:

$year = date('Y'); 
$add = $year - 2012; 
$min = 1928 + $add; 
$max = $min + 20; 
for($i=$min;$i<=$max;$i++) 
{ 
    echo '<option value='.$i.'>'.$i.'</option>'; 
} 

我是不是有日期(“Y”),或通过循环的for循环,因为它得到每次计算做任何评价一个好主意。 Article关于此。

2
for($i =0; $i <= 20 ;$i++) 
{ 
    $year = date('Y') - 84 + $i; 
    echo '<option value='.$year.'>'.$year.'</option>'; 
} 
+0

请为您的代码添加说明。 –

1

这样的事情?

$base_year = 2012; 
$start_year = $base_year - 84; 
$end_year = $start_year + 20; 

for($i = $start_year; $i <= $end_year; $i++) 
{ 
    echo '<option value='.$i.'>'.$i.'</option>'; 
} 
2

它看起来像你有你想多远后面的日期范围是从当前年份,您可以用它来写一个循环,会为你工作的常数。

既然现在是2012年,并且您希望范围从1928年开始到2012年,那么我们可以使用2012年--1928年= 84年,所以开始范围的年份应始终比当年减少84年。

$startingYear = date('Y') - 84; 
$endingYear = $startingYear + 20; 

for ($i = $startingYear;$i <= $endingYear;$i++) 
{ 
    echo '<option value='.$i.'>'.$i.'</option>'; 
}