在 javascript 中使用服务器端时钟
Using server-side clock in javascript
我正在使用一些 JavaScript 检查倒计时小时分钟目标,然后启动 php 页面:
window.setInterval(function() { // Set interval for checking
var date = new Date();
if (date.getHours() === 13 && date.getMinutes() === 31) { // Check the time
location.href = "real_live.php?lotnum=1";
}
}, 1000); // Repeat every 1000 milliseconds (1 second)
它目前正在使用客户端时钟并且功能完美。但是,我需要使用服务器端时钟并尽可能地尝试我还没有找到一种可行的方法来执行此操作。你能建议一下吗?
使用Date.UTC
。这确保了无论客户端计算机位于何处,它都是相同的。您可以阅读有关语法 here
的更多信息
为此您应该有两个单独的后端脚本。一个用于客户端将触发的计时器,如果它达到您想要的时间,您将触发您的时间敏感脚本。
所以,
xhr.open("GET", "/time.php", false);
xhr.onload = function (e){
//do your magic with the results to real_live.php
}
经过更多的研究,我找到了一个解决方案,我相信它是准确的。提出该问题是为了找到服务器端时间,但并非所有答案都如此。但我相信这个 Ajax 删节代码可以解决问题。
window.setInterval(function(){ // Set interval for checking
var xmlHttp;
function srvTime(){
try {
//FF, Opera, Safari, Chrome
xmlHttp = new XMLHttpRequest();
}
catch (err1) {
//IE
try {
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
}
catch (err2) {
try {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (eerr3) {
//AJAX not supported, use CPU time.
alert("AJAX not supported");
}
}
}
xmlHttp.open('HEAD',window.location.href.toString(),false);
xmlHttp.setRequestHeader("Content-Type", "text/html");
xmlHttp.send('');
return xmlHttp.getResponseHeader("Date");
}
var st = srvTime();
var date = new Date(st);
if(date.getHours() === 14 && date.getMinutes() === 40){ // Check the time
location.href = "real_live.php?lotnum=1";
}
},1000); // Repeat every 1000 milliseconds (1 second)
但是非常感谢大家的意见,这让我找到了这个解决方案。
我正在使用一些 JavaScript 检查倒计时小时分钟目标,然后启动 php 页面:
window.setInterval(function() { // Set interval for checking
var date = new Date();
if (date.getHours() === 13 && date.getMinutes() === 31) { // Check the time
location.href = "real_live.php?lotnum=1";
}
}, 1000); // Repeat every 1000 milliseconds (1 second)
它目前正在使用客户端时钟并且功能完美。但是,我需要使用服务器端时钟并尽可能地尝试我还没有找到一种可行的方法来执行此操作。你能建议一下吗?
使用Date.UTC
。这确保了无论客户端计算机位于何处,它都是相同的。您可以阅读有关语法 here
为此您应该有两个单独的后端脚本。一个用于客户端将触发的计时器,如果它达到您想要的时间,您将触发您的时间敏感脚本。
所以,
xhr.open("GET", "/time.php", false);
xhr.onload = function (e){
//do your magic with the results to real_live.php
}
经过更多的研究,我找到了一个解决方案,我相信它是准确的。提出该问题是为了找到服务器端时间,但并非所有答案都如此。但我相信这个 Ajax 删节代码可以解决问题。
window.setInterval(function(){ // Set interval for checking
var xmlHttp;
function srvTime(){
try {
//FF, Opera, Safari, Chrome
xmlHttp = new XMLHttpRequest();
}
catch (err1) {
//IE
try {
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
}
catch (err2) {
try {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (eerr3) {
//AJAX not supported, use CPU time.
alert("AJAX not supported");
}
}
}
xmlHttp.open('HEAD',window.location.href.toString(),false);
xmlHttp.setRequestHeader("Content-Type", "text/html");
xmlHttp.send('');
return xmlHttp.getResponseHeader("Date");
}
var st = srvTime();
var date = new Date(st);
if(date.getHours() === 14 && date.getMinutes() === 40){ // Check the time
location.href = "real_live.php?lotnum=1";
}
},1000); // Repeat every 1000 milliseconds (1 second)
但是非常感谢大家的意见,这让我找到了这个解决方案。