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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Format des types date [Drupal]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 107
    Points : 118
    Points
    118
    Par défaut Format des types date
    Bonjour,

    voici mon code pour afficher une date dans un formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $form['dateSej'] = array(
        '#type' => 'date',
        '#title' => t('date du séjour'),
    );

    Je voudrais récupérer la date choisie par l'utilisateur grace à une requête sql tout d'abord :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     db_query("INSERT INTO {table} ( dateSej)
          VALUES('%s' )",  '$dateSej' );


    puis je l'affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $output .= '<div class="table-message table-dateSej">Date du séjour : '.check_markup($entry['dateSej']) ."</div>";

    Le problème, la date affichée est 0000-00-00 ?? pourquoi ??

    Je voudrais au moins qu'elle affiche par défaut la date d'aujourd'hui sinon la date sélectionnée par l'utilisateur ...


    Merci d'avance de vos réponse .

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Bonjour,
    "INSERT" ne permet pas de récupérer une donnée mais de l'ajouter dans la base de données. C'est "SELECT" qui vous faut.
    Christophe

    Pensez à mettre quand c'est le cas.

  3. #3
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 107
    Points : 118
    Points
    118
    Par défaut
    Oui, j'insére la date dans ma base de donnée avec INSERT mais après j'utilise cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $output .= '<div class="table-message table-dateSej">Date du séjour : '.check_markup($entry['dateSej']) ."</div>";
    Qui permet d'afficher la date sauf que la date affiche 0000-00-00. Mais effectivement il y a un problème lors de l'insert car dans ma base de donnée la date est 0000-00-00

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Bienvenue dans le monde de gestion des dates de MYSQL ! (qui ne se le cachons pas, est complètement à c****).

    Ce qui se passe, c'est que ton entrée pour la date ne doit pas être valide. Sauf que Mysql, converti ton entrée en une date "valide", la date "0000-00-00".

    Bref, vérifie ce que vaut ta date, et elle doit être au format YYYY-MM-DD.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 107
    Points : 118
    Points
    118
    Par défaut
    Je pense effectivement c'est un problème de format de la date, comment changer le format de cette date ?

  6. #6
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 107
    Points : 118
    Points
    118
    Par défaut
    comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $newDate = date("YYYY-MM-DD", strtotime($DateSej));
    ??

  7. #7
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 107
    Points : 118
    Points
    118
    Par défaut
    Nom : Capture.PNG
Affichages : 132
Taille : 1,7 Ko

    Voici le format de la date dans le formulaire :/

    Effectivement, ce n'est pas pareille que le format YYYY-MM-DD comment faire pour le modifier ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Ce que vous donnez est l'affichage dans le formulaire, pas le format de date. Pour cela il faut nous montrer le code source.
    D'après votre image, il n'est pas impossible qu'il y ait 3 variables pour composer la date.
    Christophe

    Pensez à mettre quand c'est le cas.

  9. #9
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 107
    Points : 118
    Points
    118
    Par défaut
    Mon code pour afficher ceci dans mon formulaire est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $form['dateSej'] = array(
        '#type' => 'date',
        '#title' => t('date du séjour'),
    );
    Du coup comme à l'affichage je vois 2015 juin 15 j'en déduis que le format de la date est sous la forme : %Y %B %d ?

  10. #10
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Je te conseil d'aller regarder la fonction date et de tout simplement débugguer ta date pour voir vraiment ce que celle-ci contient.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  11. #11
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 107
    Points : 118
    Points
    118
    Par défaut
    J'ai déjà regardé la fonction date :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $strFormat = 'Y-m-d';
    
     $form['dateSej'] = array(
                             '#type' => 'date',
                              '#date_format' => $strFormat,
                              '#title' => t('date du séjour'),
    
                              );
    Dans le html de la page j'ai une div pour l'année, une autre pour le mois et une dernière pour le jour, de type select.

    J'ai trouvé ceci pour modifié le format de la date mais malheureusement ça ne fonctionne toujours pas.


    Avez-vous déjà eu une erreur avec cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function db_escape_string($string) {
      global $active_db;
      return mysql_real_escape_string($string, $active_db);
    }
    J'ai dû mettre la variable entre ' ' dans l'insert :
    db_query("INSERT INTO {table} ( dateSej)
    VALUES('%s' )", '$dateSej' );

  12. #12
    Membre régulier
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 107
    Points : 118
    Points
    118
    Par défaut
    Du coup j'ai fait un textfield dans le formulaire et fait un preg-match pour voir si le format de la date est correcte

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/09/2015, 22h02
  2. Réponses: 10
    Dernier message: 26/11/2008, 18h13
  3. [MySQL] format du type date
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 01/04/2008, 14h16
  4. gerer le format de type date
    Par debutantasp dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/03/2008, 19h21
  5. Format des type de données
    Par caballero dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 09/07/2007, 17h58

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