当前位置:首页>帝国CMS教程> 帝国cms发布于10秒前 1周前 1个月前 倒计时函数设置方法

帝国cms发布于10秒前 1周前 1个月前 倒计时函数设置方法

打开 /e/class/userfun.php 文件, 添加以下代码: function user_ago($tm,$rcs = 0) { // 定义函数user_ago,接受两个参数:$tm(过去的时间戳)和$rcs(是否进行递归,默认为0,表示不递归)$cur_tm = time(); // 获

打开 /e/class/userfun.php 文件,

添加以下代码:

function user_ago($tm,$rcs = 0) { // 定义函数user_ago,接受两个参数:$tm(过去的时间戳)和$rcs(是否进行递归,默认为0,表示不递归)
    $cur_tm = time(); // 获取当前时间戳
    $dif = $cur_tm-$tm; // 计算当前时间与过去时间的差值

    $pds = array('秒','分钟','小时','天','周','个月','年'); // 时间单位数组
    $lngh = array(1,60,3600,86400,604800,2630880,31570560); // 对应每个时间单位的秒数

    for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); // 从最大的时间单位开始,寻找第一个使得差值小于或等于该单位的值,该单位就是我们需要的单位
    if($v < 0) $v = 0; // 如果没有找到(也就是说差值小于1秒),则默认使用最小的单位(秒)

    $_tm = $cur_tm-($dif%$lngh[$v]); // 计算余数,即除去已经计算出的部分(比如2小时30分钟,这里是计算30分钟)

    $no = floor($no); // 对时间差的值取整,得到该单位下的数量(比如2小时30分钟,这里是得到2)
    

    $x=sprintf("%d %s",$no,$pds[$v]); // 格式化输出结果,比如 "2 小时"
    
    if(($rcs == 1)&&($v >= 1)&&(($cur_tm-$_tm) > 0)) $x .= time_ago($_tm); // 如果允许递归,并且当前单位不是秒,并且还有剩余时间,则递归调用自身计算剩余时间
    return $x."前"; // 返回结果,附加"前"
}

内容页调用:

<?=user_ago($navinfor[newstime])?>

列表內容模板(list.var) (*) 调用:

$listtemp = "发布时间".user_ago($r[newstime])."";

 

帝国cms发布于10秒前 1周前 1个月前 倒计时函数设置方法

温馨提示:本文最后更新于 2023-11-08 08:56 ,某些文章具有时效性,若有错误或已失效,请在下方留言或联系QQ115904045
声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:尚艺网络 反馈,我们将尽快处理。

给TA打赏
共{{data.count}}人
人已打赏
帝国CMS教程

帝国CMS灵动标签调用昨天、今天、某天、某天以前、某天以后发布的文章

2023-11-8 8:54:31

帝国CMS教程

帝国cms定时审核功能中用swoole实现毫秒级审核/swoole中毫秒定时器(Timer)的使用

2023-11-17 9:15:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
联系我们