Date base de données

Suivre ce topic
Ce topic est suivi par : Personne...
Swaap

Swaap Le 8 mai 2016 à 06:17 (Édité le 25 janvier 2019 à 17:51)

Bonsoir / Bonjour, 
J'ai un problème avec les dates de ma base données lorsqu'un utilisateur s'inscrit, la date est au format : 2016-05-08
Je souhaiterai que dans ma base de données lorsqu'un utilisateur s'inscrit la date se met au format :
08-05-2016

Voici ci-dessous le code que j'utilise pour insérez un utilisateur dans la base de donnée
$insererutilisateur = $bdd -> prepare("INSERT INTO utilisateurs(`pseudonyme`, `motdepasse`, `email`, `skype`, `statut`,`dateinscription`) VALUES(:pseudonyme, :motdepasse, :email, :skype, 0, NOW())");
$insererutilisateur -> execute(array(':pseudonyme' => $pseudonyme, ':motdepasse' => SHA1($motdepasse), ':email' => $email, ':skype' => $skype));
Ou si vous avez un moyen que même si dans ma base de données la date est : 2016-05-08 lorsque je veux afficher sur le profil de l'utilisateur elle se mette au format 08-05-2016.

Merci d'avance,
Swaap.
Ranarxhag

Ranarxhag Le 8 mai 2016 à 10:42 (Édité le 8 mai 2016 à 10:43)

Salut Swaap !

Je suppose que ceci à un rapport avec ton topic précédent 😉

Il me semble qu'il n'y a pas moyen d'insérer une date au format français dans la base de donnée à cause du type de ta colonne.

Néanmoins, tu peux très facilement l'afficher au format voulu.

$inscrits_ajd = $bdd->prepare('SELECT id FROM membres WHERE dateinscription = ?');
$inscrits_ajd->execute(array(date("Y-m-d")));
$inscrits_ajd->fetch();
$inscrits_ajd = $inscrits_ajd->rowCount();
Si on reprend ton code précédent, à l'endroit où tu veux afficher la date, au lieu de faire un simple affichage comme tel,

echo $inscrits_ajd['dateinscription'];
tu  vas utiliser la fonction date comme ceci :

echo date("d-m-Y", strtotime($inscrit_ajd['dateinscription'])); 
Et ce qui est bien, c'est que tu es totalement libre sur le format. Un petit exemple :

echo date("d/m/Y à H:i:s", strtotime($resultat_user['dateinscription'])); // Ce code te donnera 08/05/2016 à 18:25:36

echo date("d.m.Y", strtotime($resultat_user['dateinscription'])); // Ce code te donnera 08.05.2016
J'espère t'avoir aidé. Si tu ne comprends pas trop ce code, je te renvoie sur la doc pour le strtotime
--> http://php.net/manual/fr/function.strtotime.php

Il existe peut-être une autre manière de faire mais pour tous mes sites, je fais ça de cette façon (càd insertion en bdd au format anglais puis affichage au format français comme bon me semble)

Amicalement,
Ranarxhag
Cyberium

Cyberium Le 10 mai 2016 à 16:20

Il y a tellement plus simple ;D
Laisse la table inscrire la date à sa guise, ça évitera tout problème par la suite. Il suffira juste d'indiquer que tu veux afficher la date au format que tu veux. Pour ça, il te suffit juste d'indiquer dans ton header par exemple:
<?php 
setlocale (LC_TIME, 'fr_FR.utf8','fra');
?>
Par défaut, il te mettra sous la forme que tu as indiqué (08-05-2016) si je ne me trompe pas mais à vérifier.

Pour plus de détail, je t'invite à visionner ce tutoriel de PrimFX: TUTO PHP - FORMATER LES DATES
coucougael94

coucougael94 Le 18 mai 2016 à 14:53

Tu peux utiliser la fonction sql DATE_FORMAT(entrer, format); qui retourne la date formaté selon tes critères ex: 
DATE_FORMAT('2016-05-18 14:53:02', '%d/%m/%Y %Hh%imin%ss');

Info : marche aussi avec les datetime.
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte