Sto usando l'applicazione client AngularJS elavorando con data e ora. Il mio problema è che data di sistema locale chiunque può cambiare, per proteggerlo voglio usare la data del server senza alcuna richiesta get o post. C'è un modo per ottenere la data del server usando JavaScript?
risposte:
1 per risposta № 1Se stai usando JavaScript al dalla parte del cliente, l'unico modo per trovare il server il tempo è chiede il server qual è il attuale tempo. Non c'è magia qui. È necessario presentare una richiesta al server.
Opzioni:
- Uso AJAX o andare a prendere.
- Se la pagina HTML viene renderizzata nel server, è possibile scrivere l'ora corrente durante il rendering della pagina e inviarla al client.
Si prega di notare che non è possibile avere un preciso tempo del server a causa di ritardi di rete, ma è possibile ottenere abbastanza vicino utilizzando il codice da questa risposta (modificato):
var offset = 0;
function calcOffset() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "https://stackoverflow.com/", false);
xmlhttp.send();
var dateStr = xmlhttp.getResponseHeader("Date");
var serverTimeMillisGMT = Date.parse(new Date(Date.parse(dateStr)).toUTCString());
var localMillisUTC = Date.parse(new Date().toUTCString());
offset = serverTimeMillisGMT - localMillisUTC;
}
function getServerTime() {
var date = new Date();
date.setTime(date.getTime() + offset);
return date;
}