【问题标题】:Do not show expiration date information on Wordpress posts不要在 Wordpress 帖子上显示过期日期信息
【发布时间】:2016-02-13 01:47:40
【问题描述】:

我正在使用下面的代码来报告帖子在我的 Wordpress 网站中过期所需的时间,即我在自定义字段中定义的过期值(过期)。

从这段代码中,我保留了一个将在大约四个小时后过期的帖子,不会以这种方式显示信息:“Expires in 0 days, 4 hours and 49 minutes.”

我不想显示“0 天”,只显示剩余的小时数。在帖子第二天过期的情况下,太好了,可以正常显示“1天4小时49分钟过期”。

另外,还有一些帖子我没有定义过期,都出现如下信息:“Expires in 0 days, 2 hours and 0 minutes。”如何为这些帖子显示“未确定过期”等信息?

           <?php 
                $date_now    = date( 'm/d/Y H:i:s', current_time( 'timestamp', 0 ) );
                $date_expire = get_field('expiration');

                $now     = new DateTime($date_now);
                $expires = new DateTime($date_expire);

                $diff = $expires->diff($now)->format("%a days, %h hours and %i minutes");

                if ($now < $expires) {
                    echo "Expires em $diff", PHP_EOL;
                } 
                else if ($now >= $expires) {
                    echo "Expired!", PHP_EOL;
                }
                else {
                    echo "", PHP_EOL;
                }
            ?>

【问题讨论】:

    标签: php wordpress date


    【解决方案1】:

    使用此代码:

    $now     = new DateTime( $date_now );
    $expires = new DateTime( $date_expire );
    
    $diff = $expires->diff($now);
    
    if( $diff->days ) $diff = $diff->format( "%a days, %h hours and %i minutes" );
    else              $diff = $diff->format( "%h hours and %i minutes" );
    

    -&gt;days 是唯一的绝对 DateTime 属性。

    如果你想在时差小于 1 小时时只显示分钟,你可以这样改变上面的代码:

    if( $diff->days  ) $diff = $diff->format( "%a days, %h hours and %i minutes" );
    elseif( $diff->h ) $diff = $diff->format( "%h hours and %i minutes" );
    else               $diff = $diff->format( "%i minutes" );
    

    【讨论】:

    • 太完美了!谢谢融合3k。我没有添加到期日期并显示如下的帖子怎么办:“2小时0分钟后到期”如何避免这种情况并添加为“未确定到期”。
    • 是的,但是当我使用 ACF 创建了一个自定义字段时,该字段会出现在所有帖子中,即使是那些我没有添加过期时间的帖子。也许结果为零,但它显示值“在 2 小时 0 分钟后到期”。
    • 什么时候检索字段,$date_expire的内容是什么?不是显示的$diff,检索字段的内容:为此评估$date_expire 内容。
    • 我用 $date_expire 管理了,谢谢。最后一个问题:如何使用大量数据比较,以某种方式可以损害服务器?我的网站可能会变慢?
    • 这取决于“很多”的含义,但我认为您的网站不会变慢
    猜你喜欢
    • 2022-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 2018-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多