1 回答

TA貢獻1884條經驗 獲得超4個贊
您的代碼正在使用腳本時間。Java腳本從用戶機器上獲取時間。因此,當您訪問您的網站時,它將顯示您機器的時間,當我訪問時,它將顯示我的機器的時間。但是,如果您希望全世界的通用時間,即在世界各地顯示廣告阿根廷時間06:00,那么您可以應用以下任一方法。
1. 使用服務器時間
您需要在此處編寫一些后端代碼。顯示來自服務器的時間,以及整個世界的固定時間。細節取決于您使用的后端技術(php / java / python)。
2. 使用第三方接口
使用來自其他網站的 API。就像 worldtimeapi.org/ 一樣。撥打ajax電話,獲取所需位置的時間。您可以使用普通的 java 腳本或使用任何 ajax 庫來執行此操作。在這里,我包括兩種方法:1)普通的javascript和2)使用axios(一個流行的ajax庫)
香草
function getTime(url) {
return new Promise((resolve, reject) => {
const req = new XMLHttpRequest();
req.open("GET", url);
req.onload = () =>
req.status === 200
? resolve(req.response)
: reject(Error(req.statusText));
req.onerror = (e) => reject(Error(`Network Error: ${e}`));
req.send();
});
}
現在使用此函數進行 ajax 調用
let url = "http://worldtimeapi.org/api/timezone/America/Argentina/Buenos_Aires";
getTime(url)
.then((response) => { //the api will send this response which is a JSON
// you must parse the JSON to get an object using JSON.parse() method
let dateObj = JSON.parse(response);
let dateTime = dateObj.datetime;
console.log(dateObj);
console.log(dateTime);
})
.catch((err) => {
console.log(err);
});
斷續器
將公理庫添加到項目中。
axios({
url:"http://worldtimeapi.org/api/timezone/America/Argentina/Buenos_Aires",
method: "get",
})
// Here response is an object. The api will send you a JSON. But axios automatically
// convert it to an object. So you don't need to convert it manually.
.then((response) => {
let dateObj = response.data;
let dateTime = dateObj.datetime;
console.log(dateObj);
console.log(dateTime);
})
.catch((err) => {
console.log(err);
});
(function () {
var url =
"http://worldtimeapi.org/api/timezone/America/Argentina/Buenos_Aires",
horarios1 = [6, 14, 22],
elemento1 = document.getElementById("panel1"),
horarios2 = [0],
elemento2 = document.getElementById("panel2");
function getTime(url) {
return new Promise((resolve, reject) => {
const req = new XMLHttpRequest();
req.open("GET", url);
req.onload = () =>
req.status === 200
? resolve(req.response)
: reject(Error(req.statusText));
req.onerror = (e) => reject(Error(`Network Error: ${e}`));
req.send();
});
}
setInterval(function () {
getTime(url)
.then((data) => {
var dateObj = JSON.parse(data);
var dateTime = dateObj.datetime;
var hora = Number(dateTime.slice(11, 13));
if (horarios1.includes(hora)) {
elemento1.style.display = "block";
} else {
elemento1.style.display = "none";
}
if (horarios2.includes(hora)) {
elemento2.style.display = "block";
} else {
elemento2.style.display = "none";
}
})
.catch((err) => {
console.log(err);
});
}, 1000);
})();
<div id="panel1" style="display: none;">PANEL 6, 14, 22</div>
<div id="panel2" style="display: none;">PANEL 0</div>
希望有所幫助。不過,要記住的事情很少 -
1. worldtimeapi.org/ 是第三方服務。如果他們選擇終止服務,您的代碼將中斷。但是,如果您使用服務器時間,只要您的服務器正在運行,您的代碼就會運行。
2. 由于 ajax 調用,此代碼無法在堆棧溢出中工作。將代碼復制粘貼到項目中以使其正常工作。
3.如果仍然不起作用,則表示您面臨CORS(跨域策略)問題。閱讀此鏈接,搜索互聯網/ SO。您將找到您的解決方案??鞓返木幋a:)
添加回答
舉報