我写了这个PHP代码来显示服务器的日期和时间,但是我希望每1秒显示一次服务器日期和时间的实时更改
<p><?php echo "Server Time " . date("Y-m-d h:i:s"); ?> (GMT) UTC +0 UK/London</p>
请帮帮我,谢谢
答案 0 :(得分:6)
您需要使用Javascript,如下所示:
<body>
<p id="time"></p>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript">
var timestamp = '<?=time();?>';
function updateTime(){
$('#time').html(Date(timestamp));
timestamp++;
}
$(function(){
setInterval(updateTime, 1000);
});
</script>
答案 1 :(得分:1)
如果您仍然需要使用服务器时钟的实时时钟,您可以试试这个。我正在使用树枝{{now|date('Y/m/d H:i:s')}}
。但你也可以使用php <?php echo date('Y/m/d H:i:s');?>
。它基本上使用localStorage
将服务器日期存储在localstorage
上,setSeconds
每1秒更新localstorage
,而now变量加载localstorage
日期并转换它以js日期格式。然后我使用{{now|date('Y/m/d H:i:s')}}
元素内的date
进行后退,以防localstorage未启用。
try {
localStorage.setItem('today', new Date("{{now|date('Y/m/d H:i:s')}}");
setInterval(function clock() {
var month = [
"Jan", "Feb", "Marh", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Octr", "Nov", "Dec"
];
var now = new Date(localStorage.getItem('today'));
now.setSeconds(now.getSeconds() + 1);
localStorage.setItem('today', now);
var G = format(now.getHours() % 12 || 12);
var i = format(now.getMinutes());
var s = format(now.getSeconds());
var M = month[now.getMonth()];
var d = format(now.getDate());
var Y = now.getFullYear();
function format(data) {
return (data < 10 ? data = "0" + data : data);
}
$("#date").html(M + ". " + d + ", " + Y + " " + G + ":" + i + ":" + s);
return clock;
}(), 1000);
} catch(e) {
console.log(e);
}
答案 2 :(得分:1)
您可以在页面加载时获取服务器时间,并使用javascript函数每秒本地更新时间。 HTML PAGE
<script> var JS_BASE_URL = 'http://YOURSERVER/';</script>
<script src="assets/js/jquery-3.4.1.min.js" type="text/javascript"></script>
<script src="clock.js" type="text/javascript"></script>
</head>
<body>
Server Time <span id="server_time">00:00:00</span>
</body>
clock.js
var url = JS_BASE_URL+'/script.php';
var _h = 0;
var _m = 0;
var _s = 0;
$.ajax({
url: url,
type: 'GET',
dataType: 'JSON',
success: function(res) {
var timer = setInterval(serverTime,1000);
function serverTime(){
h = parseInt(res.hour)+_h;
m = parseInt(res.minute)+_m;
s = parseInt(res.second)+_s;
if (s>59){
s=s-60;
_s=_s-60;
}
if(s==59){
_m++;
}
if (m>59){
m=m-60;
_m=_m-60;
}
if(m==59&&s==59){
_h++;
}
_s++;
$('#server_time').html(append_zero(h)+':'+append_zero(m)+':'+append_zero(s)); }
function append_zero(n){
if(n<10){
return '0'+n;
}
else
return n;
}
}
});
script.php
<?php
$data = array('fulldate'=>date('d-m-Y H:i:s'),
'date'=>date('d'),
'month'=>date('m'),
'year'=>date('Y'),
'hour'=>date('H'),
'minute'=>date('i'),
'second'=>date('s')
);
echo json_encode($data);
?>
在github上检查:https://github.com/mdanielk/server_time
答案 3 :(得分:0)
使用Ajax显示更改显示服务器时间的时钟。为此创建两个文件是文件发送请求和使用Ajax接收数据。
开发一个脚本,通过单击按钮,我们可以向服务器发送请求以获取数据。在这个文件的正文中,我们有一个按钮。
<input type=button value=
'Get Server Time' onclick="timer_function();">
对于这个脚本,我们将添加一个计时器,以便在每秒递归调用相同的Ajax函数。这将从每秒钟获取数据,因此我们可以显示一个显示服务器时间的更改时钟。
function timer_function(){
var refresh=1000; // Refresh rate in milli seconds
mytime=setTimeout('AjaxFunction();',refresh)
}
单击此按钮可触发使用计时器setTimeout的功能。在这个定时器功能中,它可以改变刷新率,以毫秒为单位。在这个函数中,我们调用我们的主Ajax函数AjaxFunction()
function timer_function(){
var refresh=1000; // Refresh rate in milli seconds
mytime=setTimeout('AjaxFunction();',refresh)
}
在AjaxFunction()结束时再次调用timer_function()使其递归。
tt=timer_function();
在主AjaxFunction()中发送请求到clock.php文件并获取服务器时间。此数据使用div层显示。
if(httpxml.readyState==4)
{
document.getElementById("msg").innerHTML=httpxml.responseText;
document.getElementById("msg").style.background='#f1f1f1';
}
第二个文件是简单的PHP文件,其中一行代码给出了服务器的当前日期和时间。 clock.php
<?Php
echo date("d/m/y : H:i:s", time());
?>
下载文件here