7
votes

Pourquoi y a-t-il une différence entre JavaScript et Hyestamp PHP

J'ai créé des horodatages JavaScript et un horodatage PHP. Il y a environ 170 sections de différence entre eux.

  • 1302162686 PHP - TIME ()
  • 1302162517 JavaScript - Math.Round (nouvelle date (). GetTime () / 1000)

    Quelqu'un peut-il me dire pourquoi je reçois ce problème?


1 commentaires

Le serveur et le client ont-ils la même heure définis?


6 Réponses :


14
votes

php est exécuté sur le côté serveur, et dans votre exemple, JavaScript fonctionne sur le côté client.

Les deux côtés ont leur propre configuration de temps. Pour le serveur, les paramètres de fuseau horaire, etc. resteront les mêmes (sauf que vous ne les changez), mais le serveur n'a aucune idée du fuseau horaire du visiteur actuel. Il n'y a aucun moyen pour vous de contrôler cela.

Si je change de mon horloge système sur mon ordinateur portable, il influencera la date / l'heure de JavaScript côté client, mais votre minuterie de serveur ne sera pas affectée.


1 commentaires

Désolé mon mauvais, j'étais totalement hors de mon esprit. Merci de votre aide.



1
votes

php examine le temps système, qui est le serveur l'exécutant.

JavaScript examine le système du client, qui pourrait être à tout moment.


0 commentaires

1
votes

PHP utilise le temps sur votre serveur, JavaScript utilisera l'heure de la machine client (utilisateurs).


0 commentaires

1
votes

Mathias est correct. Généralement, cela ne devrait pas se produire avec cette grosse différence car les ordinateurs modernes reconnaissent leurs horloges dériver au fil du temps et utilisent des protocoles tels que NTP pour garder leurs horloges en synchronisation.

Néanmoins, vous ne devriez jamais supposer que le temps sur le client et le serveur est identique, pour deux raisons:

  • Certains clients / serveurs n'ont pas de réglages d'horloge (tels que NTP) et leurs horloges dérivent au fil du temps
  • Plus important encore, de nombreux utilisateurs / administrateurs peuvent être désemparés ou tard dans la définition de leur fuseau horaire ou en ajustant des temps d'épargne à la lumière du jour, de sorte que le délai qui vous est donné peut être précis à une seconde, mais être de plus de plusieurs heures.

    Lors de la comparaison / de calcul des temps, je vous fierais uniquement sur le serveur. Vous n'avez aucun contrôle sur le client.


1 commentaires

Très bonne réponse. Ce dernier paragraphe ne peut pas être assez stressé.



2
votes

php et javascript, les deux regardent le temps système. Dont le système? Celui qu'ils fonctionnent. Le serveur pourrait être situé dans un autre pays avec une heure différente, d'où la différence.

Aussi, l'horloge du client (ou moins souvent du serveur) pourrait être incorrecte.

Un moyen, ce que j'utilise souvent pour compter ce problème est comme ceci: xxx


0 commentaires

0
votes

Si vous êtes préoccupé par la cohérence de quelque but, je vous recommande d'utiliser le serveur comme source de temps et faites des conversions de fuseau horaire si nécessaire:

Ceci peut être d'intérêt: Manipulation Conversion de fuseau horaire avec PHP


0 commentaires