Bonjour a tous.
Je suis actuellement en train de créer un site pour ma fille de 2 mois afin de partager les photos et autres annecdotes avec la famille.
Je cherche a afficher depuis combien de temps, ma petite chérie est née sur le principe:
Je suis née depuis: X année(s), X mois, X jours, X heures, X minutes, X secondes.

Voici un exemple de ce que j'ai essayer: http://jsfiddle.net/2bxs3/2/ (j'ai appliquer un décalage de 2 unites pour toutes les données à l'exception de l'année)
Comme vous pourrez le constatez, arrivé au jour il y a un leger probleme (selon moi) puisque d'un décalge programmé de 2 jours, on passe a 6 jours...

Si vous avez une idée avec ou sans librarie tiers, je suis preneur.

1 réponse


Pewel-OutOfNutella
Réponse acceptée

Hello,

Dans ton script, tu modifie directement la différence de tes dates pour tout tes calculs.
Je m'explique, tu attribue dans un premier temps la différence des deux dates dans dDiff.
Ensuite, pour ton calcul de différence des années, tu utilises la valeur de différence des dates, dDiff.
De même pour les mois, où tu n'utilise pas la différence des deux dates, mais la différence des deux années.

Tu arrives à la fin, pour les secondes, à prendre comme variable la différence des minutes qui est elle même le résultat de la différence des heures etc...

Du coup ce qui est le plus simple, c'est de ne pas réutiliser ta première variable dDiff qui te servira de base pour tes calculs ensuite.
Typiquement, voici le code :

var dateFin = new Date(2010,4,20);
var dateDebut = new Date(2002,2,10);
var duree = (dateFin - dateDebut)/86400000;
var nbAnnee = Math.floor(duree/365.25);
var nbMois = Math.floor(((duree/365.25)-nbAnnee)*12);
var nbJour = Math.floor(((((duree/365.25)-nbAnnee)*12)-nbMois)*30.43);
alert(nbAnnee+" ans, "+nbMois+" mois et "+nbJour+" jours, séparent les deux dates");

Voilà, c'est tout de même beaucoup plus simple :D