技术文摘

如何动态显示几年前、几天前、几小时前等等兼容各大CMS

作者:雨祺   发表于:
浏览:63次    字数:818  原创
级别: 站长   总稿: 69 篇,  月稿: 0
如果用PHP的话静态页面是没有办法实时显示几小时前的,所以找了一个用js实现的方法,静态网页也可以使用,还是实时更新的。下面来一个PHP的用于动态网页的,后面在给大家说说用JS在静态网页动态网页都能实时显示的!
  1. function user_time($tm, $num) { 
  2.     if ($num == 1) { 
  3.         $tm = strtotime($tm); 
  4.     } 
  5.     $cur_tm = time(); 
  6.     $dif = $cur_tm - $tm; 
  7.     $pds = array('秒''分钟''小时''天''周''个月''年'); 
  8.     $lngh = array(1, 60, 3600, 86400, 604800, 2630880, 31570560); 
  9.     for ($v = sizeof($lngh) - 1; ($v >= 0) && (($no = $dif / $lngh[$v]) <= 1); $v--); 
  10.     if ($v < 0) $v = 0; 
  11.     $_tm = $cur_tm - ($dif % $lngh[$v]); 
  12.     $no = floor($no); 
  13.     $x = sprintf("%d%s", $no, $pds[$v]); 
  14.     return $x."前"
如果是帝国CMS的话可以这样调用
  1. <?=user_time($r[newstime],0)?> 
下面开始今日重点,兼容动静态的!依然以帝国CMS为例:
1. 引入js文件:建议换成你本地的 js 地址
  1. <script src="https://cdn.bootcss.com/timeago.js/3.0.2/timeago.js"></script> 
2. 获取时间: 使用灵动标签的话用以下获取
  1. <?=date("Y-m-d H:i:s",$bqr[newstime])?> 
3.在网页底部加入下列代码
  1. <script> 
  2. // 自动更新 
  3. var timeagoInstance = timeago(); timeagoInstance.render(document.querySelectorAll('.time'),'zh_CN'); 
  4. </script> 
下载附件为实例代码,大家看着实例修改自己的代码
1654077964.zip
8f6126e5b06d391fb51a1d8ad0511ca4.zip (570 Bytes)

【审核人:站长】

收藏   加好友   生成海报   分享
点赞(0)
打赏
Tags: 帝国CMS

发布者资料

热门文章

技术文摘

查看更多技术文摘
首页
栏目
搜索
会员
投稿