我写了一个时钟代码,它可以在不使用互联网的情况下显示世界上不同的时区,用 html 和 javascript 实现。该时钟包含在一个内联网网站中,可以从世界各地的不同位置访问该网站。为了显示正确的时间,我使用了偏移函数,这就是我的问题所在。例如,如果我为德国的时钟设置了正确的偏移量,所有显示的时间对于德国的观众都是正确的,但在美国,时间是错误的,因为偏移量总是从执行脚本的客户端获取。所以在一个国家的时间是正确的,在所有其他国家都是错误的。
我这样做是因为时钟必须在没有任何互联网资源的情况下工作,因为这个网站也被一群无法访问互联网的人使用。
我的问题是,有没有办法设置一个 ntp 服务器来同步日期功能,或者使用服务器时间本身而不是客户端时间,以便偏移量在所有国家/地区都以相同的方式工作。
提前感谢您的协助!
为了更好地理解这里是来自所描述的时钟之一的代码。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function updateTimeJP() {
var date = new Date();
<!-- Sommerzeit -->
date.setTime( date.getTime() + date.getTimezoneOffset()*-210*1000 );
<!-- Winterzeit -->
<!-- date.setTime( date.getTime() + date.getTimezoneOffset()*-480*1000 ); -->
var stunden = ( (date.getHours()<10?'0':'') + date.getHours() );
var minuten = ( (date.getMinutes()<10?'0':'') + date.getMinutes() );
//var sekunden = ( (date.getSeconds()<10?'0':'') + date.getSeconds() );
var tag = date.getDate();
var monatDesJahres = date.getMonth();
var jahr = date.getFullYear();
var tagInWoche = date.getDay();
var wochentag = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
var monat = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
//var datum = wochentag[tagInWoche] + ", " + tag + ". " + monat[monatDesJahres] + " " + jahr + ", " + stunden + ":" + minuten + ":" + sekunden ;
var datum = wochentag[tagInWoche] + ", " + tag + ". " + monat[monatDesJahres] + " " + jahr;
//var uhrzeit = stunden + ":" + minuten + ":" + sekunden;
var uhrzeit = stunden + ":" + minuten;
document.getElementById('timeJP').innerHTML = datum;
document.getElementById('clockJP').innerHTML = uhrzeit;
setTimeout(updateTimeJP, 1000);
}
window.addEventListener("load", updateTimeJP);
</script>
<style>
#Text{
text-align: center;
font-weight: bold;
line-height: 30px;
}
#timeJP {
width: 100%;
text-align: center;
}
#clockJP {
width: 100%;
text-align: center;
}
</style>
</head>
<body>
<h5>
<div id="Text">現地時間</br>Oharu-cho, Ama-gun</br>Aichi Japan</p></div>
</h5>
<h5>
<div id="timeJP">
</div>
</h5>
<h4>
<div id="clockJP">
</div>
</h4>
</body>
</html>
时钟工作正常,但例如在这种情况下,只有在德国,日本时间是正确的,在 JP 本身,由于与日本浏览器时间的偏移,显示错误的时间。