Bonjour,
Je cherche à convertir ma variable 'date_naissance' au format de date français et calculer l'âge puis l'affiche en html.
la variable affiche 0 et une erreur comme "a non well formed numeric value encountered".
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 }?>