发布评论的Unix时间戳

时间:2011-11-02 作者:John

是否有任何函数/代码段可以检索帖子上注释的unix时间戳?WordPress默认功能comment_time(); 以12hr格式返回帖子的时间(没有帮助)。

4 个回复
最合适的回答,由SO网友:EarnestoDev 整理而成

使用:

global $comment;
$timestamp = strtotime("{$comment->comment_date_gmt} GMT");
您好。

SO网友:helenhousandi

我知道你已经选择了一个答案,但根据你的评论,只需要一个注释:有一个human_time_diff() WordPress中的函数。http://codex.wordpress.org/Function_Reference/human_time_diff

SO网友:Josh C

这需要一个新的答案,因为答案很简单。

WordPress是用编程语言PHP编写的。WordPress中的日期格式函数使用PHP内置的日期格式函数。

这句话可以在wordpress codex上找到here

这些信息非常重要,因为PHP有以下格式标签\'U\'可以找到完整的列表here.

换句话说。这个问题的答案是:comment_time(\'U\');

也许这不是2011, 但它在2016.

SO网友:Andy James

不确定您需要unix时间戳的方式或原因。

您可以通过使用

<?php the_time(\'c\'); ?>
这将输出如下内容

2011-01-22T12:01:09+00:00
它可能不是unix时间戳,但如果需要,至少可以使用php将其转换为unix时间戳。

下面是一个PHP函数,用于转换为UNIX时间戳。摘自谷歌日历simplepie插件。

    function tstamptotime($tstamp) {
            // converts ISODATE to unix date
            // 1984-09-01T14:21:31Z
            sscanf($tstamp,"%u-%u-%uT%u:%u:%uZ",$year,$month,$day,$hour,$min,$sec);
            $newtstamp=mktime($hour,$min,$sec,$month,$day,$year);
            return $newtstamp;
    }
更新如果您想获得注释的相对时间,有一种比在unix中计算时间戳并进行所有这些转换更简单的方法。

下面是我正在构建的主题框架中使用的两个函数,它们将为您完成这项工作。

首先将其添加到主题函数中。

function theme_time_passed ($t1, $t2)
{
    if($t1 > $t2) :
      $time1 = $t2;
      $time2 = $t1;
    else :
      $time1 = $t1;
      $time2 = $t2;
    endif;
    $diff = array(
      \'years\' => 0,
      \'months\' => 0,
      \'weeks\' => 0,
      \'days\' => 0,
      \'hours\' => 0,
      \'minutes\' => 0,
      \'seconds\' =>0
    );
    $units = array(\'years\',\'months\',\'weeks\',\'days\',\'hours\',\'minutes\',\'seconds\');
    foreach($units as $unit) :
      while(true) :
         $next = strtotime("+1 $unit", $time1);
         if($next < $time2) :
            $time1 = $next;
            $diff[$unit]++;
         else :
            break;
         endif;
      endwhile;
    endforeach;
    return($diff);
}

function theme_time_since($thetime) 
{
    $diff = theme_time_passed($thetime, strtotime(\'now\'));
    $units = 0;
    $time_since = array();
    foreach($diff as $unit => $value) :
       if($value != 0 && $units < 2) :
            if($value === 1) :
                $unit = substr($unit, 0, -1); #removes the plural "s"
            endif;
           $time_since[]= $value . \' \' .$unit;
           ++$units;        
        endif;
    endforeach;
    $time_since = implode(\', \',$time_since);
    $time_since .= \' ago\';
    $date = $time_since;
    return $date;
}

现在,您可以在worpdress中获取任何日期格式的相对时间。。帖子或评论。

对于注释,可以在注释代码中执行类似操作。

<?php echo theme_time_since(get_comment_time(\'U\')) ?>
或者对于post date,在循环中使用此选项。

<?php echo theme_time_since(get_the_time(\'U\')) ?>
据我所知,你想做的就是这样做。它将日期和时间输出为相对于今天的天数、小时数等。

例如:

45秒前或1天1小时前。。等

结束

相关推荐

Comments_Popup_link不带回显?

我只想得到comments\\u popup\\u link生成的HTML,并在以后进行回显。我看不到comments\\u popup\\u链接有$echo 参数,我没有看到get\\u comments\\u popup\\u link函数,就像有get\\u the\\u ID一样,它返回显示它的HTML istead。我正在使用WordPress 3.1.2我能做什么?