老姚日记--随心记录,胡乱折腾 - 评论时间
type: channel
link: https://www.ztlog.com/tag/%E8%AF%84%E8%AE%BA%E6%97%B6%E9%97%B4/
items: Typecho实现类似微博几分钟、几天前的词义化时间
items: 人性化评论时间

Typecho实现类似微博几分钟、几天前的词义化时间
type: item
date: 2020-10-09T17:30:00+08:00
description: 在 var/Typecho/I18n.php 代码如下：/** * 词义化时间 * * @access public * @param string $from 起始时间 * @param string $now 终止时间 * @return string */ public static function dateWord($from, $now) { $between = $now - $from; /** 如果是一天 */ if ($between >= 0 && $between < 86400 && date('d', $from) == date('d', $now)) { /** 如果是一小时 */ if ($between < 3600) { /** 如果是一分钟 */ if ($between < 60) { if (0 == $between) { return _t('刚刚'); } else { return str_replace('%d', $between, _n('刚刚', '%d秒前', $between)); } } $min = floor($between / 60); return str_replace('%d', $min, _n('1分钟前', '%d分钟前', $min)); } $hour = floor($between / 3600); return str_replace('%d', $hour, _n('1小时前', '%d小时前', $hour)); } /** 如果是昨天 */ if ($between > 0 && $between < 172800 && (date('z', $from) + 1 == date('z', $now) // 在同一年的情况 || date('z', $from) + 1 == date('L') + 365 + date('z', $now))) { // 跨年的情况 return _t('昨天 %s', date('H:i', $from)); } /** 如果是一个星期以内 */ if ($between > 0 && $between < 604800) { $day = floor($between / 86400); return str_replace('%d', $day, _n('1天前', '%d天前', $day)); } /** 如果是一个星期以上 */ if ($between > 0 && $between < 2592000){ $week = floor($between / 648000); return str_replace('%d', $week, _n('1周前', '%d周前', $week)); } /** 如果是一年以内 */ if ($between > 0 && $between < 31557600){ $month = floor($between / 2629800); return str_replace('%d', $month, _n('1个月前', '%d个月前', $month)); } /** 如果是一年以上 */ if (date('Y', $from) == date('Y', $now)) { return date(_t('Y年n月j日 H:i'), $from); } return date(_t('Y年m月d日 H:i'), $from); }编辑文件→comments.php 找到以下代码<?php $comments->date(); ?>修改为：<?php $comments->dateWord(); ?>

人性化评论时间
type: item
date: 2020-07-26T19:39:00+08:00
description: 评论时间显示多少秒，多少天，多少时发帖代码<?php function timesince($older_date,$comment_date = false) { $chunks = array( array(86400 , '天'), array(3600 , '小时'), array(60 , '分'), array(1 , '秒'), ); $newer_date = time(); $since = abs($newer_date - $older_date); if($since < 2592000){ for ($i = 0, $j = count($chunks); $i < $j; $i++){ $seconds = $chunks$i; $name = $chunks$i; if (($count = floor($since / $seconds)) != 0) break; } $output = $count.$name.' 前'; }else{ $output = !$comment_date ? (date('Y-m-j G:i', $older_date)) : (date('Y-m-j', $older_date)); } return $output; } ?>调用代码:<?php echo timesince($comments->created);?>