1 pièce(s) jointe(s)
Comment obtenir +1 jour avec la date actuelle DE MA BASE DE DONNEES SQL
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:
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:
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:
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 :
Pièce jointe 445552