2014-09-04 72 views
-1

我的代码中的某些内容无法正常工作。我是新来的。我认为这可能是onload?Js onload和document.getElementById不适合我

我想将24小时转换为12小时格林威治标准时间的服务器时钟,我已经尽可能将我的新代码传递给我制作的CSS div。

所有的CSS都很好,我的代码在alert和alert.getElementById中都能正常工作。

<script> 

    var currenttime = '<? print date("F d, Y H:i:s a", time())?>' 


    var serverdate=new Date(currenttime) 
    var formatTime = (function() { 
     function addZero(num) { 
      return (num >= 0 && num < 10) ? "0" + num : num + ""; 
     } 

     return function (dt) { 
      var formatted = ''; 

      if (dt) { 
       var hours24 = serverdate.getHours(); 
       var hours = ((hours24 + 11) % 12) + 2; 
       formatted = [formatted, [addZero(hours), addZero(serverdate.getMinutes())].join(":"), hours24 > 11 ? "pm" : "am"].join(" ");    

      } 

     document.getElementById("servertime").innerHTML=formatted 
return formatted; 
     } 
    })(); 


    window.onload=function(){ 
    formatTime(new Date()) 
    } 


    </script> 
    </head> 
    <body> 

    <h1><p><span id="servertime"></span></p></h1> 

    </body> 
+1

'返回格式;'应该是最后一条语句在你的功能 – Satpal 2014-09-04 12:23:44

+0

谢谢虽然这不是主要问题,它似乎。 – 2014-09-04 12:27:46

+0

我通过将onload移动到Div下面的新脚本部分来实现它。 – 2014-09-04 12:32:01

回答

0

你可以写这个,根本不需要javascript。

<h1><p><span id="servertime"><? print date("F d, Y h:i:s a", time())?></span></p></h1> 

如果你正在准备一个定期更新你的JavaScript(这是有道理的),我建议使用它一个简单的jQuery脚本:

$(document).ready(function() { 
    function update() { 
     $.ajax({ 
     type: 'POST', 
     url: 'servertime.php', 
     timeout: 1000, 
     success: function(data) { 
      $("#servertime").html(data); 
      window.setTimeout(update, 1000); 
     }, 
     }); 
    } 
    update(); 
});