如何获取发布日期和现在的时间差?

时间:2018-10-16 作者:Mais_Cule

我想得到像“2天前发布”这样的时差。

我知道你可以使用以下方法来获得差异。

human_time_diff( get_the_time(\'U\'), current_time( \'timestamp\' ) ) . \' ago\';
但我不想用这个

        date_default_timezone_set(\'Australia/Melbourne\'); // set the time zone
        $timestamp = strtotime( $post->post_date ); // get timestamp
        $now =  time();// get the curren time
        $time_passed = $timestamp - $now; // get the differnece

    // display time
    $min = $time_passed / 60;
    if( $min < 60 ) {
        return sprintf( avantgardia__( \'%s min. ago\', \'newspeak\' ), intval( $min) );
    }

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

尝试date_diff() / DateTime::diff() PHP中的函数:

// Object-oriented style.
$datetime1 = new DateTime( $post->post_date );
$datetime2 = new DateTime(); // current date
$interval = $datetime1->diff( $datetime2 );
echo $interval->format( \'%a days old\' );

// .. or procedural style.
$datetime1 = date_create( $post->post_date );
$datetime2 = date_create(); // current date
$interval = date_diff( $datetime1, $datetime2 );
echo $interval->format( \'%a days old\' );
在PHP 5.2.2或更高版本中,可以比较日期(“前”和“后”),如下所示:

if ( $datetime1 < $datetime2 ) {
    echo $interval->format( \'Published %a days ago.\' );
} elseif ( $datetime1 > $datetime2 ) {
    echo $interval->format( \'Will be published in %a days later.\' );
} else {
    echo \'Published today.\';
}

结束

相关推荐

CURRENT_TIME(‘Timestamp’)似乎与实际当前时间不同

current\\u time(“timestamp”)是否存在问题?我试图获取当前的\\u时间(“时间戳”),而不是给我current time: Jun 26 2013 14:30 它给了我:Jun 26 2013 21:30 我试着检查秒数,它给了我:1372282238 这对于给定的时间是正确的,但对于real current time. 发生了什么事?