Herode Posté 18 Avril 2007 Partager Posté 18 Avril 2007 Bonjour à tous. Le but du jeu est simplissime : calculer le nombre de jours entre deux dates. Les objets Date sont construits juste avec les infos year/month/day, le calcul des intervalles de temps inférieurs au jour n'intéresse pas l'application donc pour simplifier, on les met à la même valeur partout. Dans ce cadre, voici un petit bout de code de test qui affiche le nombre de jours d'écart : function delays() {var day = 5;var hour = 2;var dt1 = new Date(2007, 02, day, hour, 0, 0);var dt2 = new Date(2007, 02, day + 20, hour, 0, 0);var delay = (dt2.getTime() - dt1.getTime())/(1000*3600*24);alert(dt2.toLocaleString() + ' - ' + dt1.toLocaleString() + ' = ' + delay);} Le calcul marche bien en général : on trouve bien dt2 - dt1 = 20 sauf si dt1 est initialisé entre le 5 mars 2007 à 2h00 et le 25 mars 2007 à 1h00 (je n'ai pas cherché pour les minutes...). Pour ces valeurs de dt1, la différence dt2 - dt1 = 19.958333333333332 Kesako ???? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 18 Avril 2007 Partager Posté 18 Avril 2007 Sans avoir la classe Date complète, difficile de te répondre. Il est possible que celle-ci ait un bug... Quelle version de Php utilise-tu ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Herode Posté 18 Avril 2007 Auteur Partager Posté 18 Avril 2007 C'est la classe Date du Javascript (pas du PHP ) J'ai bien entendu vérifié les résultats sous plusieurs navigateurs (Opera, Firefox et IE7). Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 18 Avril 2007 Partager Posté 18 Avril 2007 Au temps pour moi... j'avais mal lu ! Mais... la différence est précisément de 3600 secondes... ce qui peut s'expliquer par le passage à l'heure d'été, non ? D'autant plus que le 25 mars est précisément le jour où ce passage à l'heure d'été a eu lieu cette année et où on a donc perdu une heure Si tu ajoutes 20 jours, il est logique que tu sois impacté par cette différence à partir du 5 mars et jusqu'au 25, vu que le jour "ne comptant que 82800 secondes" sera dans l'intervalle. Tu auras l'inverse lors du passage à l'heure d'hiver vu que tu auras "une journée de 90000 secondes" Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant