【问题标题】:Calculate months, years and days between two given dates as timestamp [duplicate]将两个给定日期之间的月、年和日计算为时间戳[重复]
【发布时间】:2013-01-09 06:17:42
【问题描述】:

可能重复:
How to calculate the difference between two dates using PHP?
How to get difference between two dates in Year/Month/Week/Day?

我正在尝试在 PHP 中计算两个给定日期之间的年月日。

我也在使用这些日期的时间戳。有没有办法计算年月和

这些时间戳的差异天数。

例如,第一个日期是 2008 年 1 月 2 日。第二个日期是 2012 年 7 月 5 日。 结果是 4 年 5 个月零 3 天。

我正在将时间戳作为日期输入,想知道是否有任何可用的函数可以通过两个输入时间戳直接计算上述内容

【问题讨论】:

    标签: php


    【解决方案1】:

    您可以从时间戳创建两个 DateTime 对象 (www.php.net/datetime)。 调用 diff 方法时,您会得到一个 DateInterval 对象,该对象具有年和月的属性。

    【讨论】:

      【解决方案2】:

      您可以为此使用 DateTime 对象(请注意日期时间构造函数中缺少的“,”)。

      $datetime1 = new DateTime('2 Jan 2008');
      $datetime2 = new DateTime('5 July 2012');
      $interval = $datetime1->diff($datetime2);
      echo $interval->format('%y years %m months and %d days');
      

      【讨论】:

        【解决方案3】:

        您可以使用 DateTime 轻松做到这一点:

        $date1 = new DateTime("2008-01-02");
        $date2 = new DateTime("2012-07-05");
        $diff = $date1->diff($date2);
        
        echo "difference " . $diff->y . " years, " . $diff->m." months, ".$diff->d." days "
        

        Documentation

        【讨论】:

        • 2 月份不工作,2 月份需要 31 天
        【解决方案4】:

        你应该看看Carbon,它是一个非常新的 PHP 5.3 库,基于 DateTime,有很多有用的方法。

        对于日期差异:

        <?php
        $dtOttawa = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
        $dtVancouver = Carbon::createFromDate(2013, 1, 1, 'America/Vancouver');
        echo $dtOttawa->diffInHours($dtVancouver);
        echo $dtOttawa->diffInDays($dtVancouver);
        echo $dtOttawa->diffInMinutes($dtVancouver);
        echo $dtOttawa->diffInYears($dtVancouver);
        

        如果你想要人类可读的差异:

        $dt = Carbon::createFromDate(2011, 2, 1);
        
        echo $dt->diffForHumans($dt->copy()->addMonth());              // 28 days before
        echo $dt->diffForHumans($dt->copy()->subMonth());              // 1 month after
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-15
          • 2012-12-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多