问题描述

两个函数都返回日期和时间。他们有什么区别?你有什么例子吗?谢谢。

最佳解决方案

他们非常相似,但有一些细微差别:

function get_the_date( $d = '' ) {
    global $post;
    $the_date = '';

    if ( '' == $d )
        $the_date .= mysql2date(get_option('date_format'), $post->post_date);
    else
        $the_date .= mysql2date($d, $post->post_date);

    return apply_filters('get_the_date', $the_date, $d);
}

function get_the_time( $d = '', $post = null ) {
    $post = get_post($post);

    if ( '' == $d )
        $the_time = get_post_time(get_option('time_format'), false, $post, true);
    else
        $the_time = get_post_time($d, false, $post, true);
    return apply_filters('get_the_time', $the_time, $d, $post);
}
  1. get_the_date()始终适用于当前全局 $postget_the_time()允许您指定 post 作为参数。

  2. 它们默认为不同的格式,分别存储在 date_formattime_format 选项中。

  3. 它们分别通过不同的过滤器 get_the_dateget_the_time 加上低级别的 get_post_time

次佳解决方案

the_date()模板标签仅在每次出现时输出一次发布日期; 因此,如果两个或更多个帖子具有相同的发布日期,那么该日期仅在循环中首次出现时输出。 the_time()模板标签根据正常输出发布时间 (使用任何有效的日期/时间字符串) 。

然而,get_the_date()get_the_time()模板标签基本相同。它们用于返回 the_date()the_time()的相应值。 As per the Codex

Unlike the_date() this tag will always return the date. Modify output with ‘get_the_date’ filter.

所以,区别在于 get_the_*()模板标签本身,而在 the_*()模板标签中使用它们。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。