Calculer et afficher l'âge sous la forme: y-m-d h-i-s

Résolu/Fermé
Stanislas Poisson Messages postés 424 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 - 17 sept. 2013 à 11:15
Stanislas Poisson Messages postés 424 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 - 17 sept. 2013 à 12:48
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.

2 réponses

Salut,

quand j'ai cliqué sur votre lien mon navigateur s'est bloqué marque d'un problème de mémoire donc votre code ne doit pas être bon(boucle infini, calculs hasardeux voire impossible etc...)... sans voir le code je peut pas dire mais ça y ressemble.

Sur le principe ce n'est que de la simple arithmétique de base : 60secondes = 1min, 60min=1h, 24h=1jour etc...
ça c'est quand on est malin mais si vous avez un minimum de connaissance en programmation vous allez directement voir le manuel javascript et l'objet date ainsi que ses méthodes.

Par exemple:
http://www.w3schools.com/jsref/jsref_obj_date.asp

Après pour éviter tout les problèmes de conversions à répétitions et de décompte des années foireuses du calendrier grégorien(qui doit s'adapter avec les années bissextiles vu que son compte du temps n'est pas exact) vous pouvez utiiser le timestamp unix: c'est le nombre de secondes écoulées depuis le 1er janvier 1970: un chiffre entier et sans l'incertitude des autres système de décompte.
0
Stanislas Poisson Messages postés 424 Date d'inscription samedi 1 décembre 2012 Statut Membre Dernière intervention 22 mai 2018 66
17 sept. 2013 à 12:48
Un jsfiddle peut etre plus compatible: http://jsfiddle.net/2bxs3/5/ sinon le code en fin du post.

J'ai essayer comme vous pourrez le voir de faire le systeme de calcul mais il y a quand meme un probleme 6 jours au lieu de 2 jours... Quand à l'objet date, il me retourne des données difficilement utilisable comme par exemple 74 jours au lieu de 2 mois et 3 jours.

Je cherche plus un systeme du style de l'objet datetime de php https://www.php.net/manual/fr/class.datetime.php

var minute=60,
heure=60*60,
jour=60*60*24,
an=60*60*24*365,
mois=(60*60*24*365)/12,
d1=new Date(2012,6,4,14,28,00),
d2=new Date(2013,8,10,16,30,02),
dDiff=Math.floor((d2-d1)/1000);
// l'écart inscrit est donc de 1an, 2 mois 2jours 2h, 2min et 2sec.
// Années:
var nbrAns=Math.floor(dDiff/an);
dDiff=dDiff-(nbrAns*an);
// Mois:
var nbrMois=Math.floor(dDiff/mois);
dDiff=dDiff-(nbrMois*mois);
// Jours:
var nbrJours=Math.floor(dDiff/jour);
dDiff=dDiff-(nbrJours*jour);
// Heures:
var nbrHeure=Math.floor(dDiff/heure);
dDiff=dDiff-(nbrHeure*heure);
// Minutes:
var nbrMinute=Math.floor(dDiff/minute);
dDiff=dDiff-(nbrMinute*minute);
// Secondes:
var nbrSec=dDiff;
// On affiche
$('#txt').html(nbrAns+'années '+nbrMois+'mois '+nbrJours+'jours '+nbrHeure+'heures '+nbrMinute+'minutes '+nbrSec+'secondes');

0