2012-10-01 15 views
5

संभव डुप्लिकेट:
How to increment date with 1 (day/year) in PHP?पाश में ऑटो वेतन वृद्धि वर्ष हर साल

इम वास्तव में यकीन नहीं, जहां इस के साथ शुरू लेकिन im 1928 में एक साल शुरू करने की कोशिश कर और कम से रोकने के लिए 1 9 48 और प्रत्येक वर्ष के लिए साल 2012 में बढ़ोतरी के बाद से तिथि 1 9 28 - 1 9 48 है और 2013 के लिए यह 1 9 2 9 -19 9 4 और 2014 होगा 1 9 30 - 1 9 50 और इसी तरह ...

अभी मेरे पास बस शुरू करने और रोकने के लिए बुनियादी लूप है, लेकिन यह बहुत गतिशील नहीं है, जैसा कि मैंने कहा कि मैं कहां से रिक्त स्थान पर बहुत अधिक तारीख ('वाई') + 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>'; 
} 

संपादित करें: प्रदर्शन के लिए अपडेट किया गया। वर्तमान वर्ष लूप (प्रति पिचनिनेट की टिप्पणी) से पहले निर्धारित किया जाता है।

+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') या हर बार लूप के माध्यम से पर पाश के लिए के रूप में यह गणना की जाती है किये गये किसी भी मूल्यांकन करने के लिए एक अच्छा विचार नहीं है। इस बारे में 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 है, और आप 2012 के बाद 1 9 28 में रेंज शुरू करना चाहते हैं, तो हम 2012 - 1 9 28 = 84 का उपयोग कर सकते हैं, इसलिए साल शुरू होने वाला वर्ष हमेशा चालू वर्ष की तुलना में 84 कम होना चाहिए।

इसलिए हम कोड लिख सकता है जैसे:

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

for ($i = $startingYear;$i <= $endingYear;$i++) 
{ 
    echo '<option value='.$i.'>'.$i.'</option>'; 
} 
संबंधित मुद्दे