Customize Time Stamp

时间:2020-03-27 作者:RLM

我正在使用这个漂亮的时间戳函数,使发布日期变为“1天前”和“5分钟前”等。然而,几天后,我希望它切换到实际写入日期,例如:2020年1月4日下午4:02”,或者可能只是添加时间的选项。

以下是x天前执行的代码:

function meks_time_ago() {
    return human_time_diff( get_the_time( \'U\' ), current_time( \'timestamp\' ) ).\' \'.__( \'ago\' );
}

<?php echo meks_time_ago(); ?>

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

在此更新版本中meks_time_ago(), 如果发布日期小于$threshold 几天前的。否则,将返回完整日期和硬币。

function meks_time_ago( $days_threshold = 3 ) {
    $published_date_timestamp = get_the_time( \'U\' );
    $current_date             = new DateTime();
    $published_date           = new DateTime( "@$published_date_timestamp" );
    $interval                 = $published_date->diff( $current_date );
    $interval                 = intval( $interval->format( \'%a\' ) );

    // If the post was published more than the $threshold of days ago,
    // show the published date and time.
    if ( $interval > $days_threshold ) {
        return sprintf( \'%s %s %s\',
            get_the_date(),
            __( \'at\', \'text-domain\' ),
            get_the_time()
        );
    } else {
        // Otherwise, use the human readable time.
        return sprintf( \'%s %s\',
            human_time_diff( $published_date_timestamp, $current_date->getTimestamp() ),
            __( \'ago\', \'text-domain\' )
        );
    }
}