乌徒帮技术范儿技术中心Javascript › javascript配合PHP实现服务器动态当前时间

javascript配合PHP实现服务器动态当前时间

分类:Javascript 标签:,

需求是这样子的:我需要服务器端的时间显示在项目后台的右上角。看上去挺简单的,但是实际上并不那么容易。服务器端其实是指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采用的都是毫秒级的计算,所以大部分地方我们都要考虑到这个问题。

更多的我就不解释了,你稍加阅读应该就可以轻松读懂。

已有1条评论 快速评论
  1. 中小企业管理软件 #4374楼 2014/09/18 11:12:34 回复

    非常专业的技术博客平台,加油!

    【红博客】-关注中小企业及创业

填写个人信息,赶快回复吧!