Heim > Artikel > Web-Frontend > JavaScript-Methode zum Abrufen der serverseitigen Zeit
Es gibt einen Fehler bei der Verwendung von js zur Zeitkorrektur und zum Abrufen der Ortszeit.
Die Serverzeit kann auch mit js abgerufen werden. Das Prinzip besteht darin, eine Ajax-Anfrage zu verwenden, und die zurückgegebenen Header-Informationen enthalten einfach die serverseitigen Zeitinformationen. Folgendes:
1. Abhängig von jQuery
Code:
function getServerDate(){ return new Date($.ajax({async: false}).getResponseHeader("Date")); }
Die obige Funktion gibt ein Date-Objekt zurück Beachten Sie, dass bei Verwendung von Ajax eine Synchronisierung erforderlich ist, da sonst Uhrzeit und Datum nicht zurückgegeben werden können.
Der Anforderungslink muss nicht ausgefüllt werden.
Wenn zwischen der Serverzeit und der Ortszeit ein Unterschied besteht, muss eine Korrektur vorgenommen werden.
2. Nativer
-Code:
function getServerDate(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new window.XMLHttpRequest(); }else{ // ie xhr = new ActiveObject("Microsoft") } xhr.open("GET","/",false)//false不可变 xhr.send(null); var date = xhr.getResponseHeader("Date"); return new Date(date); }
gibt auch ein Date-Objekt zurück, xhr.open( ) muss Verwenden Sie die Synchronisierung.
Der Anforderungslink muss nicht ausgefüllt werden. Öffnen, Senden und getResponseHeader müssen in der richtigen Reihenfolge geschrieben werden.
Wenn Sie asynchrone Anforderungen verwenden müssen, können Sie den Status onreadystatechange abhören, um verschiedene Vorgänge auszuführen.
Der Code lautet wie folgt:
function getServerDate(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new window.XMLHttpRequest(); }else{ // ie xhr = new ActiveObject("Microsoft") } xhr.open("GET","/",true); xhr.send(null); xhr.onreadystatechange=function(){ var time,date; if(xhr.readyState == 2){ time = xhr.getResponseHeader("Date"); date = new Date(time); console.log(date); } } }
Die Verwendung der asynchronen Rückkehrzeit ist nicht sehr praktisch.
Der readyState hat hier vier Zustände, um unterschiedliche Verarbeitungen zu ermöglichen:
0: Die Anfrage ist nicht initialisiert
1: Die Serververbindung wurde hergestellt
2: Anfrage erhalten
3: Anfrage in Bearbeitung
4: Anfrage abgeschlossen und Antwort bereit
Fehlerstatus, Statuswert:
200: „OK „
404: Seite nicht gefunden