php
  • ajax
  • 2017-07-02 56 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

    相關問題