IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

PHP : Format NOW()


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut PHP : Format NOW()
    Salut à tous !
    Pour une requête "INSERT INTO", j'ai besoin de récupérer la date & l'heure actuelle, le soucis c'est que je veux le format à « d-m-Y à H:i », donc au format français.

    J'ai essayé $date_envoi = date("d-m-Y H:i"); mais ça ne fonctionne pas.
    En fait, si je fais <?php echo date("d-m-Y H:i"); ?> ça fonctionne, mais si je l'écris dans ma requête j'obtiens 00-00-0000 00:00.

    Variable concenrée: $date_envoi
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    	$date_envoi = date("d-m-Y H:i");
     
    	$req = $pdo->prepare("INSERT INTO mps(statut, sujet, reponse, message, id_expediteur, id_recepteur, ip_envoi, date_envoi)
    							VALUES(:statut, :sujet, :reponse, :message, :id_expediteur, :id_recepteur, :ip_envoi, :date_envoi)");
    	$req->execute(array(
    		"statut" => "Non lu",
    		"sujet" => $donnees["sujet"],
    		"reponse" => 1,
    		"message" => htmlspecialchars($_POST["message"]),
    		"id_expediteur" => $_SESSION["id"],
    		"id_recepteur" => $donnees["id_expediteur"],
    		"ip_envoi" => $_SERVER["REMOTE_ADDR"],
    		"date_envoi" => $date_envoi));
    ?>

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Si ton champ est de type DATE, tu n'as pas le choix du format.
    Ceci dit, quel est l'intérêt de vouloir le stocker au format français ?
    Ca ne sert à rien pour le stockage, c'est à l'utilisation que cela est utile.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Il est en datetime.
    Donc lorsque j'afficherais la date, comment je change son format (en "d-m-Y à H:i") ?

  4. #4
    lpa
    lpa est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 39
    Points : 54
    Points
    54
    Par défaut
    Comme le dit Bovino, le mieu est de passé par un champ de type date ou datetime mais cela t'oblige a le stocker avec le format mysql YYYY-MM-dd et de le convertir au format de ton choix avec la class Datetime de php

    Apres si tu tiens vraiment stocké ta date en format différent du format mysql tu devra passé une string mais dans ce cas tu ne pourra pas utiliser correctement le trie et la sélection par comparaison sur ce champ

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Mon champ est en datetime, comment je peux changer le format lors de l'affichage sur ma page php du coup ?

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Euh... tu lis les réponses que l'on te donne ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Oui, là je demande comment changer le format lors de l'affichage ; pas lors de l'insertion.
    EDIT : « avec la classe DateTime » c'est la fatigue !
    Je débute, il y a pas une autre façon ? Je n'ai pas appris à utiliser les classes.

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par xRayane Voir le message
    Je débute, il y a pas une autre façon ? Je n'ai pas appris à utiliser les classes.
    Directement avec mysql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATE_FORMAT(champdate, '%d/%m/%Y à %H:%i');
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Comment je l'utilise ?
    J'utilise un SELECT * FROM mps donc je vois pas trop où placer ça …

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    remplace ton * par le nom de toutes les colonnes que tu veut remonter avec le SELECT,

    et la colonne qui contient la date que tu veut modifier tu utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE_FORMAT(champdate, '%d/%m/%Y à %H:%i')
    une réponse vous a permis d'avancer ?

  11. #11
    lpa
    lpa est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 39
    Points : 54
    Points
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dateTime = DateTime::createFromFormat('YYYY-MM-dd', $laDate);
    echo $dateTime ->format('dd-MM-YYYY');
    tous simplement

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Salut.
    Donc voici ce que j'ai fait :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    	$req = $pdo->prepare("SELECT id, statut, reponse, sujet, message, id_expediteur, id_recepteur, ip_envoi, DATE_FORMAT(date_envoi, '%d/%m/%Y à %H:%i') FROM mps WHERE id = :id AND id_recepteur = :id_recepteur");
    	$req->execute(array("id" => $_GET["id"], "id_recepteur" => $_SESSION["id"]));
    	$donnees = $req->fetch();
    ?>

    Mais j'ai cette erreur à l'endroit où la date devrait s'afficher :
    Notice: Undefined index: date_envoi in xxx/afficher_mp.php on line 26

    Voici la ligne 26 :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <font size="+1">Message reçu le <?php echo $donnees["date_envoi"]; ?></font>

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Utilise un alias :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATE_FORMAT(date_envoi, '%d/%m/%Y à %H:%i') as date_envoi
    Si tu avais debugué $donnees tu aurais vu le problème.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    lpa
    lpa est déconnecté
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 39
    Points : 54
    Points
    54
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $pdo->prepare("SELECT id, statut, reponse, sujet, message, id_expediteur, id_recepteur, ip_envoi, DATE_FORMAT(date_envoi, '%d/%m/%Y à %H:%i') as date_envoi FROM mps WHERE id = :id AND id_recepteur = :id_recepteur");

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Résolu, merci tout le monde.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Hyperfile ODBC & PHP : format date
    Par Romanops dans le forum HyperFileSQL
    Réponses: 0
    Dernier message: 06/07/2011, 11h37
  2. [Dates] PHP - Format de l'heure
    Par idia29 dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2009, 01h00
  3. Réponses: 4
    Dernier message: 03/07/2008, 11h08
  4. Hyperfile ODBC & PHP : format date
    Par seb_reunion dans le forum HyperFileSQL
    Réponses: 4
    Dernier message: 20/11/2007, 12h46
  5. Format(Now, "dd/mm/yyyy hh:mm:ss")
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/03/2006, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo