10
votes

Temps JavaScript NTP

J'écris un script de comptage qui compte le temps entre une vieille date et aujourd'hui.
Tout a fonctionné bien jusqu'à ce que j'ai testé sur un ordinateur avec une date incorrecte et ont vu les résultats.
J'ai donc trouvé un moyen d'obtenir le temps NTP via http://json-time.appspot.com/time .json .
Le problème est que j'ai besoin de l'heure actuelle chaque milliseconde parce que je veux compter les millisecondes, mais c'est impossible la demande d'envoi au serveur NTP tous les milisecondes.
Ceci est un exemple de code pour voir ce que j'écris sur xxx


1 commentaires

Ce n'est pas parce que vous avez le temps d'un serveur Web pas le fait NTP. NTP est un protocole très robuste. Voir en.wikipedia.org/wiki/network_time_protocol


3 Réponses :


2
votes

Je ne suis pas sûr de comprendre ce que NTP est pour: nommément sychronisation de l'horloge interne de l'ordinateur, pas comme une utilisation pour une horloge en soi.

Je suggérerais, que vous vous connectez au service NTP une fois pour avoir la différence à l'heure interne du client et utilisez-la pour le corriger pour l'affichage. Mais je ne suis pas vraiment sûr, pourquoi une comparaison avec le temps d'ordinateur client n'est pas suffisante.


0 commentaires

11
votes

Tout d'abord, le planificateur JS a une certaine granularité - c'est-à-dire que vous pouvez demander un intervalle plus petit que, par exemple, 20 msec, mais il ne tirera pas immédiatement - ce que vous pouviez voir, c'est 20 événements tirés tous les 20 ms. .

Deuxièmement, même si vous le pouviez, ce n'est pas une bonne idée: vous feriez 1000 demandes chaque seconde , de chaque ordinateur qui utilise ce script. Même si le client et leurs connexions pouvaient gérer cela, il ne s'agit que d'un DDO pour le serveur JSON.

Ce que vous pourriez faire est celui-ci:

  • Get Time de JSON-NTP (une fois), ce sera une date
  • Obtenez l'heure locale (une fois), ce sera une date
  • Calculez la différence entre NTP et heure locale (une fois), cela sera probablement le nombre de MSEC que l'heure locale est éteinte
  • Pour chaque calcul, prenez la différence en compte

1 commentaires

Merci! Ceci est le chemin :)



4
votes

Mettez ce droit en haut de votre document: xxx

et ce droit au bas de votre document: xxx

puis , si vous devez connaître la durée de quelque chose: xxx


4 commentaires

Cela n'a rien à voir avec NTP


Vous ne comprenez pas la question


@Crapowolf Je comprends ce que l'OP essaye d'accomplir ("J'écris un script de comptage qui compte le temps entre une date ancienne et aujourd'hui") et que la manière dont l'OP tente de le faire n'est pas pratique (envoyer une demande chaque milliseconde), et ne donnera probablement pas le résultat souhaité. Donc, je souligne comment faire les choses différemment pour atteindre ce que l'OP essaie réellement de faire. Si vous avez des besoins différents et que ma réponse ne s'applique pas à votre cas spécifique n'hésitez pas à créer une nouvelle question.


@timaschew ne fait pas non plus la question, si vous le lisez attentivement. :RÉ