PHP日期 - 从返回日期差异返回时间

时间:2016-02-23 11:39:11

标签: php date datetime

我创建了一个显示两个日期之间差异的函数:实际和数据库。

我有以下代码:

$date_a = new DateTime( 'now' );
$date_b = new DateTime( $Time );

$interval = date_diff( $date_b, $date_a );

if ( $interval->format( '%m' ) >= 1 ) {
    return 'Dodano: ' . $interval->format( '%m' ) . ' miesięcy temu';
} elseif ( $interval->format( '%d' ) >= 1 ) {
    return 'Dodano: ' . $interval->format( '%d' ) . ' dni temu';
} elseif ( $interval->format( '%h' ) >= 1 ) {
    return 'Dodano: ' . $interval->format( '%h' ) . ' godz. temu';
} elseif ( $interval->format( '%i' ) >= 1 ) {
    return 'Dodano: ' . $interval->format( '%i' ) . ' min. temu';
} elseif ( $interval->format( '%s' ) >= 1 ) {
    return 'Dodano: ' . $interval->format( '%s' ) . ' sekund temu';
}

月,日,小时和分钟都可以,但是在秒显示:

Dodano: 59 min. temu

Dodano: n sekund temu

为什么?

2 个答案:

答案 0 :(得分:0)

由于服务器时间不符合您的预期,您的$ date_a提前一小时。

当我在我的服务器上试用它时,我也很困惑,但是在var_dump-ing $ date_a之后,很明显这就是问题。

希望能够为你解决它。

答案 1 :(得分:-1)

您需要调用DateInterval :: format()以将该差异显示为字符串。 将以下行添加到您的代码中。 $ interval->格式('Y-m-d H:i:s');