php
  • ajax
  • 2017-07-02 45 views 0 likes 
    0

    我想显示当前当地时间我的气象网站“自动使用Ajax更新PHP时间 - 显示

    这是我从一个查询中使用的代码:”自动使用Ajax的PHP更新时间“贴2年前

    <?php 
    echo "<html> 
        <head> 
         <title>Realtime clock</title> 
         <meta charset='UTF-8'> 
         <meta name='viewport' content='width=device-width, initial-scale=1.0'> 
         <script src='http://code.jquery.com/jquery.js'></script> 
         <script> 
         $(document).ready(function(){ 
          setInterval(_initTimer, 1000); 
         }); 
         function _initTimer(){ 
          $.ajax({ 
           url: 'timer.php', 
           success: function(data) { 
            console.log(data); 
            data = data.split(':'); 
            $('#hrs').html(data[0]); 
            $('#mins').html(data[1]); 
            $('#secs').html(data[2]); 
           } 
          }); 
         } 
         </script> 
        </head> 
        <body> 
         <span id='hrs'>0</span>:<span id='mins'>0</span>:<span id='secs'>0</span> 
        </body> 
    </html>"; ?> 
    <?php date_default_timezone_set("Australia/Brisbane"); 
    echo "Current Time: ". date("H:i:s"). " AEST"; 
    ?> 
    

    这是我getwhen我运行此:

    17时05分10秒当前时间:17时01分30秒AEST

    什么我的目标实现是: 当前时间:17:05:10 AEST,每秒更新一次。 在最后的echo语句中是否需要添加一些内容?或做其他事

    请帮助

    感谢

    +0

    好像你的服务器上的时间是关闭的4分钟 – colburton

    +0

    是的,17点01分三十秒是,当整个页面重新加载了而17点05分10秒是时间时间由上述脚本生成并且每秒更新一次。最后一行代码就是我想要实现的。如果可以的话,请帮助。 – griffo42

    回答

    0

    要显示当前时间每一秒,你可以使用jQuery来显示时间,而不是运行在服务器上的AJAX为每秒

    试试这个:

    var nIntervId; 
     
    
     
    function updateTime() { 
     
        nIntervId = setInterval(flashTime, 1000); 
     
    } 
     
    
     
    function pad(n) { return ("0" + n).slice(-2); } 
     
    
     
    Number.prototype.pad = function (len) { 
     
        return (new Array(len+1).join("0") + this).slice(-len); 
     
    } 
     
    
     
    function flashTime() { 
     
        var now = new Date(); 
     
        var h = now.getHours().pad(2); 
     
        var m = now.getMinutes().pad(2); 
     
        var s = now.getSeconds().pad(2); 
     
        var time = h + ' : ' + m + ' : ' + s; 
     
        $('#my_box1').html(time); 
     
    } 
     
    
     
    $(function() { 
     
        updateTime(); 
     
    }); 
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script> 
     
    <div id="my_box1"> 
     
        
     
    </div>

    0

    我假设你已经创建了一个单独的timer.php文件来回显服务器时间。由于当前页面只加载一次,初始服务器时间将不会更新,即“当前时间值”。由于ajax代码,剩余的DOM将随服务器时间更新。如果你想让两个时间相同,你将不得不重新加载整个页面,这是不正确的。因此,我建议你只显示一次应该是你的ajax结果。 timer.php:

    <?php 
    date_default_timezone_set("Australia/Brisbane"); 
    echo date("H:i:s"); 
    ?> 
    
    +0

    谢谢。我试图实现的是将服务器时间包括在“当前时间:”和“AEST”之间。这就是我试图用我的代码的最后一行来实现的,但是代码并没有给我所需的结果。请帮助, – griffo42

    +0

    对于“AEST”使用ajax,所以现在一个ajax代码会显示您的服务器时间和另一个显示“AEST”的ajax代码,您可能想要在经过一段时间(如5秒后)之后运行该代码。但这样的价值永远有一些差异 – user3423457

    相关问题