J'ai un site Web où les dates sont envoyées vers et depuis le serveur en utilisant JSON.stringify(). Si le client a écrit un commentaire il est envoyé au serveur avec une chaîne de date, qui ressemble à ceJavaScript Date() dysfonctionnement entre les fuseaux horaires?
"2013-09-21T04:00:00.000Z"
Lorsque le serveur reçoit la chaîne que je crée une nouvelle date de la chaîne
var server_date = new Date("2013-09-21T04:00:00.000Z");
Cette La variable date est stockée dans un MongoDB. Mais lorsque le client recharge la page de la chaîne date à laquelle le client reçoit ressemble
"2013-09-21T00:00:00.000Z"
Et quand je fais une nouvelle date de cette chaîne sur le client
var client_date = new Date("2013-09-21T00:00:00.000Z");
l'objet de la date est incorrecte. D'une manière ou d'une autre, lorsque je définis le paramètre client_date, la date est définie sur 9/20/2013 plutôt que sur 21/09/2013. Lors de l'exécution du serveur sur ma machine locale, cela n'a jamais été un problème. Actuellement, le serveur fonctionne sur AWS, donc je suppose que c'est en quelque sorte jouer avec les dates? Mais je ne comprends pas comment la variable client_date est définie un jour avant la date spécifiée dans la chaîne, indépendamment des heures-min-secondes. Comment puis-je formater mes dates pour résoudre ce problème? Merci!
Merci! Pour corriger le problème, je supprime simplement l'aspect temporel de la date et crée une nouvelle date avec le jour, le mois et l'année. Y a-t-il un moyen d'éviter le problème? – ORL
Pourquoi votre date String ressemble à '2013-09-21T00: 00: 00.000Z'? Utilisez-vous 'new Date(). ToJSON()'? Quoi qu'il en soit, c'est probablement l'heure du client, s'il se trouve dans un fuseau horaire différent. Si vous voulez un temps cohérent, et que vous utilisez PHP, utilisez 'date_default_timezone_set ('America/Los_Angeles')' avec le fuseau horaire correct et faites quelque chose comme '$ dt = date ('D M Y h: i: s'). ' GMT-0700 (heure normale du Pacifique) '; 'pour que cela ressemble à la sortie JavaScript. Bien sûr, utilisez le fuseau horaire correct. – PHPglue