Bonjour,
Je cherche à convertir ma variable 'date_naissance' au format de date français et calculer l'âge puis l'affiche en html.
la variableaffiche 0 et une erreur comme "a non well formed numeric value encountered".
Code : Sélectionner tout - Visualiser dans une fenêtre à part $age
Je ne sais pas pourquoi Age prend la valeur de 0 alors qu'un peu plus haut avec un var_damp() je vois bien que la variable elle a la date en format français d-m-Y.
Je vous remercie d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <?php $sql = " SELECT `nom_cochon`, `nom_pere`, `nom_mere`, `date_naissance` FROM `cochon_infos`"; ?> <?php // Calcule l'âge à partir d'une date de naissance jj/mm/aaaa function Age($date_naiss) { $am = explode('/', $date_naiss); $an = explode('/', date('d/m/Y')); if(($am[1] < $an[1]) || (($am[1] == $an[1]) && ($am[0] <= $an[0]))) return $an[2] - $am[2]; return $an[2] - $am[2] - 1; } $datenaiss = '07/06/1989'; // test $age = Age($datenaiss); //test echo $age; //test ?>
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 <div class="row"> <?php foreach($pdo->query($sql) as $row) { ?> <div class="col-md-3 col-sm-6"> <div class="product-grid6"> <div class="product-image6"> <a href="#"> <img class="pic-1" src="images/katy-cochon.png"> </a> </div> <div class="product-content"> <h3 class="title"><a href="#"><?php print $row['nom_cochon']; ?></a></h3> <?php $dateNaissCochon = $row['date_naissance']; // Y-m-d //inverser la date (format français) list($date, $time) = explode(" ", $dateNaissCochon); list($year, $month, $day) = explode("-", $date); list($hour, $min, $sec) = explode(":", $time); echo "date format francais ".$dateNaissCochon = "$day/$month/$year $time". "</p>"; //calculer l'age echo "var_damp ->"; var_dump($dateNaissCochon); $datenaiss = $dateNaissCochon; // affiche bien d/m/Y $age = Age($dateNaissCochon); echo "Age : ?" . $age . "<br>"; //résultat "Age : 0", erreur : a non well formed numeric value encountered ?> <span class="product-shipping">Age : <?php print $dateNaissCochon; ?></span><br> // format français d-m-Y <span class="product-shipping">Nom du père : <?php print $row['nom_cochon']; ?></span> <br> <span class="product-shipping">Nom de la mère : <?php print $row['nom_mere']; ?></span><br> </div> <ul class="social"> <li><a href="" data-tip="Contact"><i class="fa fa-search"></i></a></li> <li><a href="" data-tip="Détails"><i class="fa fa-shopping-bag"></i></a></li> </ul> </div> </div> <?php }?>
Partager