融合人类时差和传统时间戳?

时间:2013-05-28 作者:AndrettiMilas

我的目标是只在当天添加帖子时使用human\\u time\\u diff。如果不是,我想恢复到传统的时间戳(第二个代码)。我不确定这将如何实现,需要一些帮助。我已经提供了下面将要组合的两个代码。

获取发布时间和当前时间(即25分钟前)之间的差异的代码:

<?php echo human_time_diff( get_the_time(\'U\'), current_time(\'timestamp\') ) . \' ago\'; ?> 
声明该职位的代码是在X日期X时间添加的:

<?php the_time(\'F j, Y\'); ?> at <?php the_time(\'g:i a\'); ?>

2 个回复
最合适的回答,由SO网友:Pat J 整理而成

您可以获取帖子的创建日期/时间,并将其与当前日期/时间进行比较。

global $post;
$now = time(); // Current time in seconds since Epoch
$post_created = strtotime( $post->post_date );  // post\'s creation date in seconds since Epoch, so we\'re comparing apples to apples
$one_day_in_seconds = 24*60*60;
if ( ( $now - $post_created ) < $one_day_in_seconds ) {
    echo human_time_diff( get_the_time(\'U\'), current_time(\'timestamp\') ) . \' ago\';
} else {
    the_time( \'F j, Y \\a\\t g:i a\' );
}
引用PHP。净值:
time()
strtotime()

法典:
Post Object (适用于post_date)

SO网友:Rarst

您需要用代码表示您的条件。您感兴趣的是与当前日期进行比较,可以用PHP格式表示Y z 例如

因此,您的情况类似(未测试):

if ( the_time( \'Y z\' ) === date_i18n( \'Y z\' ) )

    // today

else

   // otherwise

结束

相关推荐