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

SQL Procédural MySQL Discussion :

Afficher heure et minute d'un TIME (MySQL)


Sujet :

SQL Procédural MySQL

  1. #1
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 87
    Points : 90
    Points
    90
    Par défaut [résolu]Afficher heure et minute d'un TIME (MySQL)
    Dans ma base de donnée, j'ai utilisé un champ de type TIME afin d'enregistrer une heure et des minutes. Je sauve donc des secondes inutilement.

    Je veux afficher uniquement les heures et les minutes.

    J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        public function getHorraireHM(){
            $format = 'H:i';
             return date($format, mktime($this->horraire . '01:01:2000'));
        }
    La variable horraire comporte une copie du champ TIME. Les heures sont correctement retournées mais les minutes affichées ne sont pas celles de la base de données mais celles de l'heure actuelle!!

    Si je retourne directement la variable horraire, j'ai les bonnes minutes mais également les secondes qui ne m'intéressent pas.

    Merci.

  2. #2
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 87
    Points : 90
    Points
    90
    Par défaut
    Je cherche toujours en vain, je me permet de remonter le sujet.

  3. #3
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonjour,

    mktime demande que les paramètres qu'on lui passe soit séparés par des virgules. Tout ce qui n'est pas correct est remis à la date et à l'heure du jour. Ceci explique que les heures sont OK alors que le reste ne l'est pas.

    Si this->horraire est un string de la forme hh:mm:ss essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $format = 'H:i';
    return date($format, mktime(substr($this->horraire,0,2).','.substr($this->horraire,3,2));
    ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $format = 'H:i';
    $var=str_replace(':',',',$this->horraire);
    return date($format, mktime($var));
    Pas testé !!!
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  4. #4
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Au lieu d'essayer de faire quelque chose en php, regarde plutôt du coté de Mysql.

    Dans la doc on voit très bien une fonction qui répondra à tes attentes :
    http://dev.mysql.com/doc/refman/4.1/...functions.html

    regarde à la fonction DATE_FORMAT


    Pierre
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  5. #5
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 87
    Points : 90
    Points
    90
    Par défaut
    Merci à vous deux. PapyPhp, ça ne change rien...

    C'est vrai que d'utiliser mySQL pour récupérer juste les heures et les minutes, c'est plus propre. J'ai donc essayé de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DATE_FORMAT(`n_date`, '%H:%i')
    FROM nouvelle;
    Ca me retourne 00:00 autant de fois qu'il y a d'enregistrements dans la table nouvelle.

    J'ai bien sûr testé au préalable ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i');
    et ça, et bien ça retourne 22h23.

    Le problème vient du fait que mon champ est de type TIME et pas DATE, c'est pour ça qu'à la base, je voulais faire le "traitement" en php... Donc a priori, il faut ajouter à n_date une année, un moi et un jour bidon mais je ne sais pas faire ça en SQL...

    J'aime les ordinateurs...

  6. #6
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Salut,

    Dans Mysql il existe aussi une fonction time_format qui utilise la même syntaxe que date_format sauf qu'elle prend un time comme argument.

    Voili voila.
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  7. #7
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 87
    Points : 90
    Points
    90
    Par défaut
    Pourquoi faire simple quand on peut faire compliquer :p, merci beaucoup.

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

Discussions similaires

  1. php afficher les heures avec minutes qui reste..
    Par xunil2003 dans le forum Langage
    Réponses: 1
    Dernier message: 21/07/2012, 21h51
  2. [MySQL] Heure + 2 minutes
    Par _ChToM_ dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/09/2006, 14h01
  3. [langage] afficher heure et utilisateur
    Par caro_du_94 dans le forum Langage
    Réponses: 14
    Dernier message: 21/10/2004, 19h05
  4. Probleme comparaison heure et minutes
    Par innosang dans le forum Bases de données
    Réponses: 5
    Dernier message: 13/05/2004, 08h40
  5. recuperer heure et minute de datetime
    Par nora_ora dans le forum Langage SQL
    Réponses: 4
    Dernier message: 08/10/2003, 12h47

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