PHP使用AJAX异步请求服务器时间,然后在客户端实时刷新显示

涛哥 PHP代码

以下是一个简单的PHP和JavaScript实现使用AJAX异步请求服务器时间,然后在客户端实时刷新显示的代码示例:

index.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>实时显示北京时间</title>
</head>
<body>
    <p id="time"></p>
    <script>
        function showTime() {
            var xmlhttp;
            if (window.XMLHttpRequest) {
                xmlhttp = new XMLHttpRequest();
            } else {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    var timeStr = this.responseText;
                    document.getElementById('time').innerHTML = timeStr;
                }
            };
            xmlhttp.open("GET", "get_time.php", true);
            xmlhttp.send();
        }
        setInterval(showTime, 1000);
    </script>
</body>
</html>

get_time.php

<?php
date_default_timezone_set('Asia/Shanghai');
echo date('Y-m-d H:i:s');

在上面的代码中,我们在客户端定义了一个showTime函数,该函数使用AJAX异步请求服务器上的get_time.php脚本获取当前时间,并将时间字符串显示在页面上。在get_time.php脚本中,我们使用date函数获取当前时间,并以字符串形式输出。 使用setInterval函数每秒钟调用一次showTime函数,实现实时刷新的功能。

需要注意的是,在使用AJAX异步请求服务器时间时,可能会存在跨域问题。如果index.phpget_time.php不在同一个域名下,需要在服务器端进行跨域处理。