做统计时间的思路就是从你开始建站的时间戳到现在的时间戳的差,然后除以1年内多少秒就得到运行的年,月、天以此例推。但话又说回来这还是有点偏差,因为一年有闰年和闰月之说,所有多一天和少一天的时间戳是有误差的,这点大家要明白。知道原理了,下面来看看代码吧

PHP版

 <?php
/**
* 秒转时间,格式 年 月 日 时 分 秒
*/
// 设置时区
date_default_timezone_set('Asia/Shanghai');
function getalltime($time){
   if(is_numeric($time)){
       $value = array(
               "years" => 0, "days" => 0, "hours" => 0,
               "minutes" => 0, "seconds" => 0,
       );
       if($time >= 31556926){
           $value["years"] = floor($time/31556926);
           $time = ($time%31556926);
       }
       if($time >= 86400){
           $value["days"] = floor($time/86400);
           $time = ($time%86400);
       }
       if($time >= 3600){
           $value["hours"] = floor($time/3600);
           $time = ($time%3600);
       }
       if($time >= 60){
           $value["minutes"] = floor($time/60);
           $time = ($time%60);
       }
       $value["seconds"] = floor($time);
       return (array) $value;
   }else{
       return (bool) FALSE;
   }
}
// 本站创建的时间
$site_create_time = strtotime('2012-06-02 00:00:00');
$time = time() - $site_create_time;
$uptime= getalltime($time);
?>
运行时间:
<span style="color:red;">
 <?php echo $uptime['years']; ?>年
 <?php echo $uptime['days']; ?>天
 <?php echo $uptime['hours']; ?>小时
 <?php echo $uptime['minutes']; ?>分
 <?php echo $uptime['seconds']; ?>秒
</span>

JS版

    <script>
   function secondToDate(second) {
       if (!second) {
           return 0;
       }
       var time = new Array(0, 0, 0, 0, 0);
       if (second >= 365 * 24 * 3600) {
           time[0] = parseInt(second / (365 * 24 * 3600));
           second %= 365 * 24 * 3600;
       }
       if (second >= 24 * 3600) {
           time[1] = parseInt(second / (24 * 3600));
           second %= 24 * 3600;
       }
       if (second >= 3600) {
           time[2] = parseInt(second / 3600);
           second %= 3600;
       }
       if (second >= 60) {
           time[3] = parseInt(second / 60);
           second %= 60;
       }
       if (second > 0) {
           time[4] = second;
       }
       return time;
   }
</script>
<script type="text/javascript" language="javascript">
   function setTime() {
       // 博客创建时间秒数,时间格式中,月比较特殊,是从0开始的,所以想要显示5月,得写4才行,如下
       var create_time = Math.round(new Date(Date.UTC(2013, 4, 22, 0, 0, 0))
               .getTime() / 1000);
       // 当前时间秒数,增加时区的差异
       var timestamp = Math.round((new Date().getTime() + 8 * 60 * 60 * 1000) / 1000);
       currentTime = secondToDate((timestamp - create_time));
       currentTimeHtml = currentTime[0] + '年' + currentTime[1] + '天'
               + currentTime[2] + '时' + currentTime[3] + '分' + currentTime[4]
               + '秒';
       document.getElementById("htmer_time").innerHTML = currentTimeHtml;
   }
   setInterval(setTime, 1000);
</script>
  运行时间:<span id="htmer_time" style="color: red;"></span>

这里推荐大家用JS版,因为JS版有个setIntserval函数可以自动获取最新的时间,我们设置为1秒就可以动态的看到时间在一秒一秒的变动