首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得发布日期与现在之间的时间差?

如何获得发布日期与现在之间的时间差?
EN

WordPress Development用户
提问于 2018-10-16 00:16:30
回答 1查看 4.2K关注 0票数 2

我想得到时差,就像“两天前发布的”。

我知道你可以用下面的方法得到区别。

代码语言:javascript
复制
human_time_diff( get_the_time('U'), current_time( 'timestamp' ) ) . ' ago';

但我不想用这个

代码语言:javascript
复制
        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) );
    }
EN

回答 1

WordPress Development用户

回答已采纳

发布于 2018-10-16 03:09:59

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

代码语言:javascript
复制
// 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' );

在PHP5.2.2或更高版本中,您可以比较日期("ago“与”date“),如下所示:

代码语言:javascript
复制
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.';
}

您可以看到$interval->format(...)

https://www.php.net/manual/en/dateinterval.format.php

票数 2
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/316788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档