Bonjour, Bonsoir,

Je voudrais savoir quelle méthode utilisée pour afficher la date de demain ^PAR RAPPORT a la date d'aujourd'hui
AVEC MA BASE DE DONNEES SQL avec la POO?

Je précise que j'ai DEJA regardé toute la doc PHP + d'autres forums pour trouver une réponse à ma question.
ET je suis en formation d'apprentissage Developpeur web.

J'ai deux fichiers avec des class POO et un fichier index.

Voici quelques portions de code de mes fichiers :

Fichier "class personnage"
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
 
<?php
// PREMIERE ETAPE : Creer la class Personnage avec ses Attributs prives et ses Methodes
class Personnage
{
    // ETAPE 01 : Attributs Prives (= Caracteristiques) de Objet Personnage
    private $_id,
            $_nom, 
            $_dateDernierCoup,
            $_dateDerniereConnexion;
 
    // ETAPE 03 : Constantes
 
    // ETAPE 06 : Le Constructeur
    public function __construct(array $donnees)
    {
        $this->hydrate($donnees);
    }
 
 
    // ETAPE 05 : HYDRATER les Objets
    public function hydrate(array $donnees)
    {
        foreach ($donnees as $key => $value)
        {
            $method = 'set'.ucfirst($key);
 
            if (method_exists($this, $method))
            {
                $this->$method($value);
            }
        } // FIN DE "foreach ($donnees as $key => $value)"
    }
 
 
    // ETAPE 02 : Methodes (= Fonctionnalites) Publics de Objet Personnage
    public function nomValide()
    {
        return !empty($this->_nom);
    }
 
    // ETAPE 04.01 : Liste de GETTERS (= Accéder à un attribut : l'accesseur ou getter)
    public function id() { return $this->_id; }
    public function nom() { return $this->_nom; }
    public function dateDernierCoup() { return $this->_dateDernierCoup; }
    public function dateDerniereConnexion() { return $this->_dateDerniereConnexion; }
 
 
   // ETAPE 04.02 : Liste des SETTERS (= Modifier la valeur d'un attribut : les mutateurs ou Setters)
 
    public function setId($id)
    {
        $id = (int) $id;
 
        // Verifier que "$id" est SUPERIEUR A 0
        if ($id > 0)
        {
            $this->_id = $id;
        }
    }
 
    public function setNom($nom)
    {
        // Verifier que "$nom" est une chaîne de caractères 
        if (is_string($nom))
        {
            $this->_nom = $nom;
        }
    }
 
    public function setDateDernierCoup($dateDernierCoup)
    {
        // DEFINITION :
        // * " DateTime::createFromFormat " (= code PHP pour le style POO)
        // * Analyse une heure au format texte selon le format spécifié.
        $dateDernierCoup = DateTime::createFromFormat("Y-m-d H:i:s", $dateDernierCoup);
 
        $this->_dateDernierCoup = $dateDernierCoup;
    }
 
    public function setDateDerniereConnexion($dateDerniereConnexion)
    {
        // DEFINITION :
        // * " DateTime::createFromFormat " (= code PHP pour le style POO)
        // * Analyse une heure au format texte selon le format spécifié. 
        $dateDerniereConnexion = DateTime::createFromFormat("Y-m-d H:i:s", $dateDerniereConnexion);
 
        $this->_dateDerniereConnexion = $dateDerniereConnexion;
 
    }
}
Fichier "class personnagesManager"
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
<?php
/* /// *** DEUXIEME ETAPE : Stockage Base de Donnees (= la class PersonnagesManager) *** /// */
class PersonnagesManager 
{
    // ETAPE 01 : Attributs Prives (= Caracteristiques) de Objet PersonnagesManager
    private $_db;
 
    // ETAPE 03 : Le Constructeur
    public function __construct($db)
    {
        $this->setDb($db);
    }
    // ETAPE 02 : Setters
    public function setDb(PDO $db)
    {
        $this->_db = $db;
    }
 
    // ETAPE 04 : Methodes (= Fonctionnalites) Publics de Objet PersonnagesManager
    public function add(Personnage $perso)
    {
        // Préparation de la requête d'insertion.
        $q = $this->_db->prepare('INSERT INTO comparerdates(nom, dateDernierCoup, dateDerniereConnexion) VALUES(:nom, NOW(), NOW())');
        // Assignation des valeurs pour le nom du personnage.
        $q->bindValue(':nom', $perso->nom());
        // Exécution de la requête.
        $q->execute();
 
        $now = new DateTime('NOW');
 
        // Hydratation du personnage passé en paramètre 
        // * avec assignation des Attributs Privés de la class "Personnage"
        // * ( de son identifiant, des dégâts initiaux (= 0), etc...)
        $perso->hydrate([
            'id' => $this->_db->lastInsertId(),
            // format('d-m-Y à H: i: s')
            'dateDernierCoup' => $now->format('Y-m-d H:i:s'),
            'dateDerniereConnexion' => $now->format('Y-m-d H:i:s'),  
        ]); 
    }
 
    // ... ...
 
    public function update(Personnage $perso)
    {
        // Prépare une requête de type UPDATE.
        $q = $this->_db->prepare('UPDATE comparerdates SET dateDernierCoup = :dateDernierCoup, dateDerniereConnexion = :dateDerniereConnexion WHERE id = :id');
        // Assignation des valeurs à la requête.
        $q->bindValue(':id', $perso->id(), PDO::PARAM_INT);
        $q->bindValue(':dateDernierCoup', $perso->dateDernierCoup()->format('Y/m/d H:i:s'), PDO::PARAM_STR);
        $q->bindValue(':dateDerniereConnexion', $perso->dateDerniereConnexion()->format('Y/m/d H:i:s'), PDO::PARAM_STR);
        // Exécution de la requête.
        $q->execute();
    }   
}
?>
FICHIER INDEX
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
 
if (isset($perso)) 
{
?>
    <p>le nom du perso est :
        <?= htmlspecialchars($perso->nom()) ?><br>
        la date du dernier coup est le
        <?= $perso->dateDernierCoup()->format('d/m/Y à H:i:s') ; ?><br>
        la date de derniere connexion est le
        <?= $perso->dateDerniereConnexion()->format('d/m/Y à H:i:s') ; ?>
    </p>
            <?php
        
        // PARTIE "dernierCoup"
        //$dc = $perso->dateDernierCoup();
         
        // Creation de Nouveau Objet DATETIME
        $dateDerCoup = new DateTime();
        // Ajout d'une periode de 1Jour
        $dateDerCoup->add(new DateInterval('P1D'));
        
        // PARTIE "derniereConnexion"
        $dconex = $perso->dateDerniereConnexion()->format('d/m/Y à H:i:s');
         
        // Creation de Nouveau Objet DATETIME
        $dateCo = new DateTime($deconex);
        // Ajout d'une periode de 1Jour
        $dateCo->add(new DateInterval('P1D'));
        ?>
    <p>
        Coups Portés : <?php echo ' ils seront remis à zéro le : ', $dateDerCoup->format('d-m-Y à H:i:s'); ?><br />
        DerniereConnexion : <?php echo $dateCo->format('d-m-Y à H:i:s'); ?>
    </p>
    <?php   
}

sur le navigateur, cela m'affiche :
Nom : CaptureMiniJeuCombat12.JPG
Affichages : 603
Taille : 57,2 Ko