我正在实现一个应该在服务器上获取时间的ajax时钟。我有太平洋时间。但是我的时钟无法占用服务器的时间,并且似乎显示了随机时间。我不知道为什么。
这是我当时在客户端的脚本:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
var start_time;
var current_time;
//gets current server time
var get_time = function () {
$.ajax({
type: 'GET',
url: '../Server_Side/clock.php',
data: ({ action : 'get_time' }),
success: (function (data) {
start_time = new Date(
data.year,
data.month,
data.day,
data.hour,
data.minute,
data.second
//comment
);
$('#clock').html(current_time.toLocaleTimeString("en-US", {timeZone:'America/Vancouver'}));
}),
dataType: 'json'
});
}
//counts 0.25s
var cnt_time = function () {
current_time = new Date(start_time.getTime() + 250);
$('#clock').html(current_time.toLocaleTimeString("en-US", {timeZone:'America/Vancouver'}));
start_time = current_time;
}
setInterval(cnt_time, 250); //add 250ms to current time every 250ms
setInterval(get_time, 30250); //sync with server every 30,25 second
get_time();
</script>
这就是我在服务器端的时钟:
<?php
if ( isset($_GET['action']) && !empty($_GET['action']) && $_GET['action'] == 'get_time' ) {
header('Content-type: application/json');
echo json_encode (
array (
'year' => date('Y'),
'month' => date('m'),
'day' => date('d'),
'hour' => date('h'),
'minute' => date('i'),
'second' => date('s')
)
);
}
else {
header('HTTP/1.1 404 Not Found');
echo '<h1>404 Not Found</h1>';
echo '<p>The page that you have requested could not be found.</p>';
}
?>
答案 0 :(得分:0)
date('m')
将返回01
直到12
。您可能想要date('n') - 1
,它返回0到11。对于JS Date对象,第二个参数接受monthIndex
,它只接受0(一月)至11(十二月)。
参考文献: