Calcul d'âge

oscarluigi

Nouveau membre
21 Septembre 2005
8
0
43
Bonjour à tous,

j'ai une base mysql dans laquelle des objets sont datés.
Je souhaite calculer l'âge de ces objets et j'utilise cette méthode:

$aujourdhui = date("Y-m-d");
$age = $aujourdui - $mcd

($mcd étant la date de l'objet, au format Y-m-d)

Le problème, c'est que ça me renvoie une valeur en années, et je voudrais plutôt en mois et années.
Y'a-t-il un fonction qui permette cela?

Je voudrais aussi calculer un âge moyen pour une liste d'objets, c'est possible?

Par avance, merci!

Yann:zen:
 

oscarluigi

Nouveau membre
21 Septembre 2005
8
0
43
Merci pour la réponse :up:

J'ai testé, ça marche bien, voilà ce que j'obtiens:
resultat (dernière colonne à droite)

C'est conforme à cce que j'attendais ;)

Par contre, pour l'instant tout va bien, mais j'ai lu que les timestamp commençaient en 1970 :eek:

Comment je vais faire quand je vais entrer dans ma base des bus plus anciens???

Merci et à plus

Yann :zen:
 

p4bl0

Membre d’élite
Club MacG
12 Juillet 2004
4 772
425
32
$PWD
p4bl0.net
bon apparement tu ne réagi pas... (edit : finalement si !)
Bloc de code:
<?php
$aujoudhui = time();
$mcd = explode('-', $mcd);
$mcd = mktime(0, 0, 0, $mcd[1], $mcd[2], $mcd[0]);
$diff = $aujourdhui - $mcd;
// on obtient la différence entre les deux date, mais en secondes.
// pour la transformer en année par exemple :
$diff_en_an = (($diff / 3600) / 24) / 365;
$diff_en_an = number_format($diff_en_an, 2);
?>
 

p4bl0

Membre d’élite
Club MacG
12 Juillet 2004
4 772
425
32
$PWD
p4bl0.net
merde quand j'ai commencer à rédiger, t'avais pas encore répondu... m'enfin c'est pas grave :D


#EDIT : bon en fait me réponse et du coup à coté de la plaque, mais t'as posés une autre question... à laquelle je ne sais pas répondre, je coris que c'est pas possible, mais je ne suis pas sur... peut-être que les timestamp peuvent être négatif...
 

oscarluigi

Nouveau membre
21 Septembre 2005
8
0
43
Merci pour le code, c'est à peu de choses près ce que j'ai fait. A la place de explode et mktime,
j'ai utilisé strtotime, ça fait gagner une ligne :D

Sinon, j'ai fait un test en utilisant strtotime sur une date antérieure à 1970, ça renvoie 0...
Il faut que je trouve une parade!

Yann :zen: