【问题标题】:Time deference between two date("F j, Y") dates in phpphp中两个日期(“F j,Y”)日期之间的时间差
【发布时间】:2014-11-03 20:54:47
【问题描述】:

我在获取两个日期之间的月差时遇到了问题。

$d1 = date_create('January 1, 2013');
$date = date("F j, Y");
$d2 = date_create($date);
$dif = date_diff($d1, $d2);
 //echo $dif->format('%y years');
 echo $dif->format('%m months');

它显示月份,但不显示月份的全部差异。我只想要日期之间的月份差异。

【问题讨论】:

  • 这段代码输出“10 个月”,但真正的差异是 22 个月。
  • 'date("F j, Y")' 代表什么?为什么不打印第二个日期。
  • 显示当前日期

标签: php date time date-math


【解决方案1】:

%m 最多只能显示 11 个月。在那之后的岁月里,人满为患。如果您想要总月数,您需要计算年数并进行一些数学运算:

$d1  = date_create('January 1, 2013');
$d2  = date_create();
$dif = date_diff($d1, $d2);
echo ($dif->format('%m') + $dif->format('%y') * 12) . ' months';

Demo

仅供参考,上述解决方案删除了​​不必要的代码。如果您想要今天的日期,您只需不将任何参数传递给date_create()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 2021-12-24
    相关资源
    最近更新 更多