“使用Ajax自动更新PHP中的时间 - 显示

时间:2017-07-02 07:16:38

标签: php ajax

我希望在我的天气网站上显示当前的当地时间。

这是我在查询中使用的代码:“使用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";
?>

这是我在运行时获得的:

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

我的目标是: 当前时间:17:05:10 AEST,每秒更新一次。 在最终的echo语句中是否需要添加一些内容?或者做点别的事情

请帮助

由于

2 个答案:

答案 0 :(得分:0)

要显示每秒的当前时间,您可以使用jquery显示时间,而不是每秒在服务器上运行ajax

试试这个:

&#13;
&#13;
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();
});     
&#13;
<script type="text/javascript"  src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<div id="my_box1">
  
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

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

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