【问题标题】:How to get +50 year from current year using php date function如何使用php日期函数从当年获得+50年
【发布时间】:2014-06-14 07:05:26
【问题描述】:

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

你好,

我尝试使用以下代码从当年获得 +50 年。但是日期函数只允许添加 +20 年。

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

如果我在 OutPut 显示下方添加 +20 年:

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

如果我添加 +50 年,则显示空白输出:

【问题讨论】:

    标签: php date loops strtotime


    【解决方案1】:

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

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

    DEMO

    【讨论】:

    • 你好马克谢谢你的回答,但我想从当年动态添加 +50 年。
    • @GirishPatidar 好的......但这就是它的作用,不是吗?它为当前年份增加了 50 年...
    • 除非突然之间的年份编号不同,在执行年份和 50 年后之间的某个地方,这将输出相同并且更快。
    【解决方案2】:

    你可以使用...

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

    【讨论】:

      【解决方案3】:

      尽管此处的某些答案有相反的迹象,PHP 可以存储和操作 2038 年以后的日期,但您必须使用 DateTime 类和 PHP >= 5.3 才能这样做。

      来自手册:-

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

      这应该足以满足您的需求。

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

      $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.

      【讨论】:

      • 我从未在 PHP 中的类名前见过反斜杠;它有什么作用?
      【解决方案4】:

      PHP(和其他一些语言)无法存储 2038 年以后的日期。这是一个相关问题:Why do timestamps have a limit to 2038?

      【讨论】:

      • PHP(和其他一些语言)可以存储 2038 年以后的日期。请参阅 my answer
      【解决方案5】:

      尝试使用 64 位架构的操作系统和 php。这是一个 2038 年的问题。阅读更多http://en.wikipedia.org/wiki/Year_2038_problem

      【讨论】:

        【解决方案6】:

        最好的捷径方法是,我这里是从当年到+40年

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

        【讨论】:

          猜你喜欢
          • 2015-07-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-16
          • 1970-01-01
          • 1970-01-01
          • 2012-02-16
          • 1970-01-01
          相关资源
          最近更新 更多