2014-06-14 77 views
1

如何使用PHP日期函數如何使用PHP日期函數

你好獲得50年從當年獲得50年從本年度

我有嘗試下面的代碼從獲得50年今年。但日期功能只允許添加+20年。

for($i = date('Y'); $i <= date('Y', strtotime('+50 year')); $i++){ 
    echo $i.','; 
} 

如果我添加20年然後在下面的輸出顯示:

2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034, 

,如果我加50年然後空白輸出顯示:

回答

2

爲什麼不只是做手工,因爲這樣:

$cur_year = date('Y'); 
for ($i=0; $i<=50; $i++) { 
    echo $cur_year++ . ','; 
} 

DEMO

+0

你好馬克謝謝你的回答,但我想從當年50年動態添加。 –

+0

@GirishPatidar好吧......但這就是這樣做,不是嗎?它增加了今年的50 ... –

+0

除非突然年份的編號不同,在執行年份和50年後之間的某個地方,這會輸出相同並且更快。 – 11684

1

PHP(和其他一些語言)不能存儲2038年以後的日期。下面是一個相關的問題:Why do timestamps have a limit to 2038?

+0

PHP(和其他一些語言)__can__存儲日期超過2038年。請參閱[我的答案](http://stackoverflow.com/a/24217974/212940)。 – vascowhite

1

可以使用...

<?php 
for($i = date('Y'); $i <= date('Y') + 50; $i++){ 
    echo $i.','; 
} 
?> 
2

儘管這裏的一些答案的跡象,相反,PHP 可以存儲和處理日期超過2038,但你必須使用DateTime類和PHP> = 5.3來這樣做。

從手冊: -

的日期和時間信息在內部存儲爲一個64位的數,因此所有可以想象有用的日期(包括負年)的支持。範圍從過去的約2,920億年到未來的相同。

這應該足以滿足您的需求。

達到你想要的最簡單的方法是這樣的: -

$fiftyYearsFromNow = new \DateTime('+ 50 years'); 

See it working

還有其他方法,看看這些非常有用的類,並瞭解它們。示例循環的直接轉換可能如下所示: -

for($i = new \DateTime(); $i < new \DateTime('+ 50 years'); $i->add(new \DateInterval('P1Y'))){ 
    echo $i->format('Y') . "<br>\n"; 
} 

See it working

+0

我從來沒有在PHP中的類名前看到反斜槓;它有什麼作用? – 11684

+1

@ 11684它是默認的[namespace](http://uk3.php.net/namespace)。 – vascowhite

0

最佳和快捷方法,我在這裏從當年走至+40一年

$value = range(date('Y'),date('Y', strtotime('+40 year')));