Я использую часы 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>';
}
?>