主题开发:将时间戳转换为普通时间(之前)

在Wordpress主题开发过程中,文章meta是必不可少的元素之一。不过一般都是2020/05/20等标准时间显示,但我们在使用国外主题时,我们经常看到文章meta显示发布文章时间是“x天、x小时之前”这种格式,那么这么格式是怎么做出来的呢。我们用下面的代码来看看。

elements-envato 主题开发:将时间戳转换为普通时间(之前)

1、首先把下面的代码放在您主题的function.php里。这个代码是核心代码

/**
 * Convert the timestamp to human time (time ago)
 */
function ietheme_time_to_human_time( $datetime, $full = false ) {
    $now = new DateTime;
    $ago = new DateTime($datetime);
    $diff = $now->diff($ago);
    $diff->w = floor($diff->d / 7);
    $diff->d -= $diff->w * 7;
    $string = array(
        'y' => esc_html__('year', 'textdomain'),
        'm' => esc_html__('month', 'textdomain'),
        'w' => esc_html__('week', 'textdomain'),
        'd' => esc_html__('day', 'textdomain'),
        'h' => esc_html__('hour', 'textdomain'),
        'i' => esc_html__('minute', 'textdomain'),
        's' => esc_html__('second', 'textdomain'),
    );
    foreach ($string as $k => &$v) {
        if ($diff->$k) {
            $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 's' : '');
        } else {
            unset($string[$k]);
        }
    }
    if (!$full) $string = array_slice($string, 0, 1);
    return $string ? implode(', ', $string) . ' ' . esc_html__('ago', 'textdomain') : esc_html__('just now', 'textdomain');
}

2、在您网站的合适位置,一般在template-tags.php或是其它显示文章meta值的地方,使用下面的代码调用即可。

$date = ietheme_time_to_human_time(get_the_date());
echo = '<li>
					<i class="icon-calendar"></i>
					<p>'. esc_html__( 'Date', 'textdomain' ) .'</p>
					<span><time datetime="'. get_the_date('c') .'">' . $date . '</time></span>
				</li>';

本文已在Ie主题99839发布

文章来源:https://ietheme.com/convert-the-timestamp-to-human-time.html


发表评论

撰写评论

电子邮件地址不会被公开。 必填项已用*标注

加入我们

注册完成!

密码重置

请输入您的邮箱地址。 您将收到一个链接来创建新密码。

检查你的邮件中的确认链接。