Herode Posté 18 Avril 2007 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 ????
Dan Posté 18 Avril 2007 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 ?
Herode Posté 18 Avril 2007 Auteur 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).
Dan Posté 18 Avril 2007 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant