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 :

Fonction mktime et date en français


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut Fonction mktime et date en français
    Bonjour à tous,
    j'ai un soucis avec la fonction mktime.
    Voici le contexte.
    Depuis une base de données je sors des dates au format YYYY-mm-dd qui sont des dates passé.
    J'ai donc créé une fonction pour qui me donne la date en français avec le jour en français en passant en paramètre la date sorti de la base données.

    Voici la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function date_fran($date)
    	{
     
    	 $date_expl = explode('-',$date);
     
    	 $jourmake = mktime(12, 30, 0, $date_expl[1], $date_expl[2], $date_expl[0]);
    	 $jourdu = date("l", $jourmake);
     
    						 $joursemaine = array ("Monday" => "Lundi", "Tuesday" => "Mardi", "Wednesday" => "Mercredi", "Thursday" => "Jeudi", "Friday" => "Vendredi", "Saturday" => "Samedi", "Sunday" => "Dimanche");
    						  return $joursemaine[$jourdu]." ".$jours[date($date_expl[2])]." ".date($date_expl[2])." ".$mois[date($date_expl[1])-1]." ".date($date_expl[0]);
    						  }
    Le problème que j'ai c'est qu'en haut de ma page j'ai ceci:
    Warning: mktime() expects parameter 6 to be long, string given in ....
    Même si la date est correcte cette erreur est gênante.

    Après si je donne une date en numérique et non une valeur type date_expl l'erreur ne s'affiche plus.


    Merci d'avance.
    Avez vous une idée de pourquoi l'erreur s'affiche

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    y'a plein de fonctions en php pour géré les dates ainsi que l'i18n

    strtotime
    strftime
    IntlDateFormatter
    ...

    y'a aussi plein de sujets sur le forum

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Merci de ta réponse stealth35 je ne connaissais pas ces fonctions.
    Cependant ce n'est pas vraiment mon erreur.
    Actuellement je cherche plus à comprendre pourquoi mon mktime me joue des tours.

    Je vais regarder les fonctions que tu m'as donné histoire de voir si ca peut correspondre à mes besoins.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    fait un var_dump($date_expl);

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    J'ai fait un echo dans la boucle.
    Voilà ce que ça me sors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    array(3) { [0]=> string(4) "2011" [1]=> string(2) "10" [2]=> string(2) "28" } 
    array(3) { [0]=> string(4) "2011" [1]=> string(2) "10" [2]=> string(2) "31" } 
    array(1) { [0]=> string(0) "" }
    Du coup l'erreur que je me prends ne serait-elle pas dû au fait que j'ai un troisième tableau vide?
    Et de ce fait lorsque je fais un mktime avec ce troisième tableau vide il n'arrive pas à calculer le mktime et m'affiche l'erreur.

    EDIT: Effectivement c'était bien le troisième tableau qui posait le problème du mktime. Tout est réglé.
    Merci stealth35 le coup du var_dump m'a mis sur la voie.

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

Discussions similaires

  1. fonction mktime() et date()
    Par mitchreward dans le forum Langage
    Réponses: 3
    Dernier message: 08/08/2012, 11h37
  2. [Dates] Erreur de calcul avec la fonction mktime ?
    Par Xpertfly dans le forum Langage
    Réponses: 1
    Dernier message: 18/11/2008, 11h40
  3. Affichage d'évènements en fonction de leur date ?
    Par swirtel dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/05/2005, 10h30
  4. Trier les enregistrements en fonction de la date
    Par mpereg dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 12/09/2004, 14h16
  5. Date format français
    Par coca dans le forum XMLRAD
    Réponses: 2
    Dernier message: 17/11/2003, 08h46

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