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"
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
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 INDEX
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(); } } ?>
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 :
![]()
Partager