需求是这样子的:我需要服务器端的时间显示在项目后台的右上角。看上去挺简单的,但是实际上并不那么容易。服务器端其实是指PHP的全局时间,因为不同的服务器配置不同,所以很多服务商都提供服务器时间,但是因为这些时间是显示在服务商提供的控制面板,而非我们自己的网站后台。因此,我采用了本文将要使用的方法,彻底解决这个问题。
1.使用PHP获取当前服务器端的时间戳
代码非常简单,在你的PHP文件中写上time()即可。
注意,不同的服务器获取到的time()或许不同,它可不是北京时间,如果所有服务器的时间都是北京时间,那我干嘛还写这篇文章。PHP用date('Y-m-d H:i:s')即可显示当前的时分秒。
2.让javascript来实现动态时间
PHP获取时间之后,是不会动的,如果你没有刷新你的网页,时间不会变。这可太糟糕了,如果你在写代码的时候一不小心瞌睡了,醒来发现时间没变,不是傻眼了么?所以让javascript来实现动态时间。
在你的HTML代码部分写上下面的代码:
<a href="#" onclick="location.reload(true);" id="now-time"><?php echo date('Y-m-d H:i:s'); ?></a>
别问为什么,我下面会一步步演示给你看。
下面就是javascript部分。
<script> // 服务器时间 function get_now_time(time) { time = time*1000; var $time = new Date(time); var year = $time.getFullYear(), month = $time.getMonth() + 1, day = $time.getDate(), hour = $time.getHours(), minute = $time.getMinutes(), second = $time.getSeconds(); if(second < 10)second = '0' + '' + second; if(minute < 10)minute = '0' + '' + minute; if(hour < 10)hour = '0' + '' + hour; if(day < 10)day = '0' + '' + day; if(month < 10)month = '0' + '' + month; return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second; } var nowTime = <?php echo time(); ?>; setInterval(function(){ var timeString = get_now_time(nowTime); $('#now-time').text(timeString);// 红色部分可以使用document.getElementById('now-time')代替 nowTime ++; },1000); </script>
上面代码中的红色部分都是关键部分,javascript采用的都是毫秒级的计算,所以大部分地方我们都要考虑到这个问题。
更多的我就不解释了,你稍加阅读应该就可以轻松读懂。
非常专业的技术博客平台,加油!
【红博客】-关注中小企业及创业