/ / Come ottenere la data del server usando JavaScript? - javascript, angularjs

Come ottenere la data del server usando JavaScript? - javascript, angularjs

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 № 1

Se 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:

  1. Uso AJAX o andare a prendere.
  2. 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;
}