如何使用php日期函数从当前年份获得+ 50年
你好,
我已尝试使用以下代码获得当年的+ 50年。但是日期功能只允许添加+ 20年。
for($i = date('Y'); $i <= date('Y', strtotime('+50 year')); $i++){
echo $i.',';
}
如果我加上+ 20年,那么在OutPut下面显示:
2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,
如果我添加+ 50年,则空白OutPut显示:
答案 0 :(得分:2)
答案 1 :(得分:2)
尽管这里的一些答案中有相反的迹象,PHP 可以存储和操作2038年以后的日期,但你必须使用DateTime类和PHP&gt; = 5.3来这样做。
从手册: -
日期和时间信息在内部存储为64位数字,因此支持所有可以想象的有用日期(包括负数年份)。范围从过去的约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";
}
答案 2 :(得分:1)
PHP(以及其他一些语言)无法存储2038年以后的日期。以下是一个相关问题:Why do timestamps have a limit to 2038?
答案 3 :(得分:1)
尝试使用64位架构的操作系统和PHP。这是一个2038问题。阅读更多http://en.wikipedia.org/wiki/Year_2038_problem
答案 4 :(得分:1)
你可以使用......
<?php
for($i = date('Y'); $i <= date('Y') + 50; $i++){
echo $i.',';
}
?>
答案 5 :(得分:0)
最佳和捷径方法是,这里我从今年开始到+40年
$value = range(date('Y'),date('Y', strtotime('+40 year')));