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

PHP & Base de données Discussion :

comment stocker le jour, le mois et l'année indépendemment ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 61
    Points : 51
    Points
    51
    Par défaut comment stocker le jour, le mois et l'année indépendemment ?
    Hello tout le monde,

    alors voilà, j'explique :

    j'ai besoin de stocker deux dates ( Du ..xx/xx/xxxx.. Au ..xx/xx/xxxx.. ) ds ma table MySQL.
    De manière à ce que je puisse par la suite ré-utiliser indépendament l'un de l'autre chaque élément en tant que variable...

    Je sais que je ne m'exprime pas très bien xD

    Voici une petite illustration :

    Je ne sais pas si je suis sur la meilleure des solutions...

    voici comment j'affiche les deux dates (PHP):

    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
     
    <?php
    $theDateFrom = isset($_REQUEST["date3"]) ? $_REQUEST["date3"] : "";
    $theDateTo = isset($_REQUEST["date4"]) ? $_REQUEST["date4"] : "";
    ?>
     
     
    <table>
    <tr>
    <td>Du</td><td>:</td><td><?php echo $theDateFrom ?></td>
    </tr>
    <tr>
    <td>Au</td><td>:</td><td><?php echo $theDateTo ?></td>
    </tr>              
    </table>
    en plus elle ne sont pas dans le bon format ! elles sont en YYYY/MM/DD alors que je les voudrais dans l'autre sens, XX/MM/YYYY -> XX = $jour, MM=$mois, YYYY=$année

    Comment rentrer ces deux dates dans ma table MySQL pour pouvoir réutiliser uniquement le jour par exemple, et/ou uniquement le mois,... ?

    Merci d'avance à tous.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Le plus important, est de définir correctement le TYPE de la donnée dans la table SQL : Types temporels
    Pour le type "DATE" : "Le standard ISO adopté pour le SQL repose sur le format AAAA-MM-JJ"

    A priori, le mieux est d'enregistrer les dates au format "DATE" (qui permet des comparaisons de dates en sql),
    et au moment de l'affichage, utiliser les paramètres de la fonction date()
    Dernière modification par Invité ; 13/08/2011 à 19h47.

  3. #3
    Invité
    Invité(e)
    Par défaut
    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
    <?php
    // (test)
    $ladate = '2011/08/13'; // de la forme AAAA/MM/JJ
     
    // enregistrement en BdD
    $ladate_bd = str_replace('/', '-', $ladate); // de la forme AAAA-MM-JJ
     
    // recuperation depuis la BdD
    $ladate_bd = '2011-08-13'; // de la forme AAAA-MM-JJ
    // annee, moi, jour
    $annee = date('Y',strtotime($ladate_bd));
    $mois = date('m',strtotime($ladate_bd));
    $jour = date('d',strtotime($ladate_bd));
    // date en francais de la forme JJ/MM/AAAA
    $ladate_fr = date('d/m/Y',strtotime($ladate_bd));
     
    // affichage (test)
    echo 'ladate : '.$ladate.'<br />';
    echo 'ladate_bd : '.$ladate_bd.'<br />';
    echo 'annee : '.$annee.'<br />';
    echo 'mois : '.$mois.'<br />';
    echo 'jour : '.$jour.'<br />';
    echo 'ladate_fr : '.$ladate_fr.'<br />';
    ?>

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 61
    Points : 51
    Points
    51
    Par défaut
    C'est tout à fait ce que je voulais obtenir comme résultat !

    Il ne me reste plus qu'à transformer le mois "01" en "janvier" ou "jan".

    et

    Un peu plus complexe, comment faire pour obtenir le jour de la semaine (lundi, mardi, mercredi,...) relatif au jour du mois ?

    Le but est d'obtenir un résultat comme sur l'image que j'ai posté.

    A savoir :

    ---------------------

    J'ai :

    - Le jour "01" c'est parfait
    - Le mois "01" que je vais transformer en "Jan" ou "Janvier".
    - L'année "2011" qui dans ce cas-ci m'est inutile.

    Il me manque :

    - Le jour de la semaine.
    A savoir "Lundi", "Mardi", "Mercredi",...


    Je continue à développer de mon coté et je vous tiens au courrant.

    Un grand merci de votre aide.

  5. #5
    Membre averti
    Homme Profil pro
    Consultant PLM
    Inscrit en
    Août 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant PLM

    Informations forums :
    Inscription : Août 2007
    Messages : 203
    Points : 304
    Points
    304

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    Bonjour,

    pour le mois, tu fais un tableau php contenant tous les mois (attention, ne mets rien en premier car les tableaux commencent par ), puis l'appelle avec la dimension du mois que tu as stocké :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mois_en_cours = $tab_mois[$mois];
    pour le jour, même système.
    le code pour obtenir le jour est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mon_jour = date("w", strtotime($ladate_bd));
    Attention au retour : 0 c'est dimanche et 6 c'est samedi

    Tiens-nous au courant

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mon_jour = date("N", strtotime($ladate_bd));
    Le retour : 1 (pour Lundi) à 7 (pour Dimanche). Ceci est conforme à la norme ISO-8601 qui définit, entre autres choses, que la semaine commence le lundi.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2011
    Messages : 61
    Points : 51
    Points
    51
    Par défaut
    Merci à tous,
    Je suis parvenu à mes fins grâce à tout le monde :-)

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

Discussions similaires

  1. [Quartz] Comment spécifier le jour du mois et le mois dans une CronExpression
    Par nadhir84 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 21/03/2013, 12h25
  2. [MySQL] Date du jour + x mois ou + x année
    Par Donald08 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/08/2008, 08h57
  3. Réponses: 2
    Dernier message: 30/01/2008, 19h19
  4. Comment compter les jours par mois entre deux dates
    Par Doo89 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 10/01/2008, 22h21

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