子比主题的时间3天之内的想显示某某小时前,昨天,前天,3天后的就正常显示时间,作者是直接所有的都显示某某之前,导致很多3年前,5年前的文章都这样显示,除了节省地方,我没想到任何的好处,多年前就应该跟出具体的时间展示,让访客知道该篇文章到底是什么时候发布的。
我是怎么解决的呢?
在inc/functions/zib-tool.php文件夹内:搜索一下 时间倒序格式化 即可定位到要修改的地方,把原有的代码修改成:
else {
$text = date('Y-m-d H:i:s', $time);
}
date(‘Y-m-d’, $time) 就是输出具体年月日。想让哪个部分不展示就直接修改,替换即可。
原来的代码:
//时间倒序格式化
function zib_get_time_ago($time)
{
if (is_int($time)) {
$time = intval($time);
} else {
$time = strtotime($time);
}
if (!_pz('time_ago_s', true) && _pz('time_format')) {
return date(_pz('time_format'), $time);
}
$ctime = intval(strtotime(current_time('mysql')));
$t = $ctime - $time; //时间差 (秒)
if ($t < 0) {
return date('Y-m-d H:i', $time);
}
$y = intval(date('Y', $ctime) - date('Y', $time)); //是否跨年
if (0 == $t) {
$text = '刚刚';
} elseif ($t < 60) {
//一分钟内
$text = $t . '秒前';
} elseif ($t < 3600) {
//一小时内
$text = floor($t / 60) . '分钟前';
} elseif ($t < 86400) { //一天内
$text = floor($t / 3600) . '小时前'; // 一天内
} elseif ($t < 2592000) {
//30天内
if ($time > strtotime(date('Ymd', strtotime('-1 day')))) {
$text = '昨天';
} elseif ($time > strtotime(date('Ymd', strtotime('-2 days')))) {
$text = '前天';
} else {
$text = floor($t / 86400) . '天前';
}
} elseif ($t < 31536000 && 0 == $y) {
//一年内 不跨年
$m = date('m', $ctime) - date('m', $time) - 1;
if (0 == $m) {
$text = floor($t / 86400) . '天前';
} else {
$text = $m . '个月前';
}
} elseif ($t < 31536000 && $y > 0) {
//一年内 跨年
$text = (12 - date('m', $time) + date('m', $ctime)) . '个月前';
} else {
$text = (date('Y', $ctime) - date('Y', $time)) . '年前';
}
return $text;
}
//剩下的时间格式化
function zib_get_time_remaining($time, $over_text = '已过期')
{
if (is_int($time)) {
$time = intval($time);
} else {
$time = strtotime($time);
}
$ctime = intval(strtotime(current_time('mysql')));
$t = $time - $ctime; //时间差 (秒)
if ($t <= 0) {
return $over_text;
}
$y = intval(date('Y', $ctime) - date('Y', $time)); //是否跨年
if ($t < 60) {
//一分钟内
$text = $t . '秒后';
} elseif ($t < 3600) {
//一小时内
$text = floor($t / 60) . '分钟后';
} elseif ($t < 86400) { //一天内
$text = floor($t / 3600) . '小时后'; // 一天内
} elseif ($t < 2592000) {
//30天内
$text = floor($t / 86400) . '天后';
} elseif ($t < 31536000 && 0 == $y) {
//一年内 不跨年
$m = date('m', $ctime) - date('m', $time) - 1;
if ($m > 0) {
$text = $m . '月后';
} else {
$text = floor($t / 86400) . '天后';
}
} elseif ($t < 31536000 && $y > 0) {
//一年内 跨年
$text = (12 - date('m', $time) + date('m', $ctime)) . '月后';
} else {
$text = (date('Y', $ctime) - date('Y', $time)) . '年后';
}
return $text;
}
function zib_get_time_spend($time, $unit = 'day')
{
if (is_int($time)) {
$time = intval($time);
} else {
$time = strtotime($time);
}
$current_time = intval(strtotime(current_time('mysql')));
$t = $current_time - $time; //时间差 (秒)
switch ($unit) {
case 'day':
case 'days':
return floor($t / 86400);
break;
}
}
优化后的代码:
//时间倒序格式化
function zib_get_time_ago($time)
{
if (is_int($time)) {
$time = intval($time);
} else {
$time = strtotime($time);
}
if (!_pz('time_ago_s', true) && _pz('time_format')) {
return date(_pz('time_format'), $time);
}
$ctime = intval(strtotime(current_time('mysql')));
$t = $ctime - $time; //时间差 (秒)
if ($t < 0) {
return date('Y-m-d H:i', $time);
}
$y = intval(date('Y', $ctime) - date('Y', $time)); //是否跨年
if (0 == $t) {
$text = '刚刚';
} elseif ($t < 60) {
//一分钟内
$text = $t . '秒前';
} elseif ($t < 3600) {
//一小时内
$text = floor($t / 60) . '分钟前';
} elseif ($t < 86400) { //一天内
$text = floor($t / 3600) . '小时前'; // 一天内
} elseif ($t < 2592000) {
//30天内
if ($time > strtotime(date('Ymd', strtotime('-1 day')))) {
$text = '昨天';
} elseif ($time > strtotime(date('Ymd', strtotime('-2 days')))) {
$text = '前天';
} else {
$text = date('Y-m-d H:i:s', $time);
}
} elseif ($t < 31536000 && 0 == $y) {
//一年内 不跨年
$m = date('m', $ctime) - date('m', $time) - 1;
if (0 == $m) {
$text = date('Y-m-d H:i:s', $time);
} else {
$text = date('Y-m-d H:i:s', $time);
}
} elseif ($t < 31536000 && $y > 0) {
//一年内 跨年
$text = date('Y-m-d H:i:s', $time);
} else {
$text = date('Y-m-d H:i:s', $time);
}
return $text;
}
//剩下的时间格式化
function zib_get_time_remaining($time, $over_text = '已过期')
{
if (is_int($time)) {
$time = intval($time);
} else {
$time = strtotime($time);
}
$ctime = intval(strtotime(current_time('mysql')));
$t = $time - $ctime; //时间差 (秒)
if ($t <= 0) {
return $over_text;
}
$y = intval(date('Y', $ctime) - date('Y', $time)); //是否跨年
if ($t < 60) {
//一分钟内
$text = $t . '秒后';
} elseif ($t < 3600) {
//一小时内
$text = floor($t / 60) . '分钟后';
} elseif ($t < 86400) { //一天内
$text = floor($t / 3600) . '小时后'; // 一天内
} elseif ($t < 2592000) {
//30天内
$text = floor($t / 86400) . '天后';
} elseif ($t < 31536000 && 0 == $y) {
//一年内 不跨年
$m = date('m', $ctime) - date('m', $time) - 1;
if ($m > 0) {
$text = date('Y-m-d H:i:s', $time);
} else {
$text = floor($t / 86400) . '天后';
}
} elseif ($t < 31536000 && $y > 0) {
//一年内 跨年
$text = date('Y-m-d H:i:s', $time);
} else {
$text = date('Y-m-d H:i:s', $time);
}
return $text;
}
function zib_get_time_spend($time, $unit = 'day')
{
if (is_int($time)) {
$time = intval($time);
} else {
$time = strtotime($time);
}
$current_time = intval(strtotime(current_time('mysql')));
$t = $current_time - $time; //时间差 (秒)
switch ($unit) {
case 'day':
case 'days':
return floor($t / 86400);
break;
}
}
当然,做好备份怎么折腾都行,每次更新主题的话都会被覆盖,所以希望作者什么时候能开发出这个功能。
👋 感谢您的观看!
© 版权声明
THE END