如何使用php日期函数从当前年份获得+50年



如何使用php日期函数从当前年份获得+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年,则空白输出显示:

您可以使用…

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

为什么不直接手工操作呢?

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

尽管在这里的一些答案中有相反的指示,PHP 可以存储和操作2038年以后的日期,但是您必须使用DateTime类和PHP>= 5.3来这样做。

从手册:-

日期和时间信息在内部存储为64位数字,因此支持所有可能有用的日期(包括负数)。这个范围从过去的2920亿年到未来的2920亿年。

应该能满足你的需要。

实现你想要的最简单的方法是:-

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

看到它在工作

还有其他的方法,看看这些非常有用的类并了解它们。您的示例循环的直接转换可能看起来像这样:-

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

PHP(和其他一些语言)不能存储2038年以后的日期。这里有一个相关的问题:为什么时间戳有2038年的限制?

尝试使用64位体系结构的OS和php。这是2038年的问题。阅读更多http://en.wikipedia.org/wiki/Year_2038_problem

最好和快捷的方法是,这里我从今年到+40年

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

相关内容

  • 没有找到相关文章

最新更新