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 :

Problème de date [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2012
    Messages : 81
    Points : 44
    Points
    44
    Par défaut Problème de date
    Bonjour,
    J'ai un petit souci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $date = "12/03/2013-17:30";
    $date_f = strftime('%Y-%m-%d %H:%M:%S',strtotime($date));
    Cela marche, mais le résultat ajoute 1 heure de plus que la date d'origine.

    Merci.

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    cherche du côté des timezone.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2012
    Messages : 81
    Points : 44
    Points
    44
    Par défaut
    le code suivant corrige le problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date_default_timezone_set('Europe/London');
    mais un autre problème est apparu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $date = "31/01/2013-20:23";
    $date_f = strftime('%Y-%m-%d %H:%M',strtotime($date));
    Le code renvoie: 1970-01-01 01:00

    Pourquoi?

  4. #4
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2012
    Messages : 81
    Points : 44
    Points
    44
    Par défaut
    Finalement j'ai corriger mon problème de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("/(\d\d)\/(\d\d)\/(\d\d\d\d)-([0-9]{2}):([0-9]{2})$/", "$3-$2-$1 $4:$5", $date)

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 386
    Points : 10 413
    Points
    10 413
    Par défaut
    Oui c'est que "strtotime" n'accepte pas n'importe quoi et là tu as un format très exotique.

    En même temps si c'est pour avoir un format final sans lettres, tu n'as pas besoin d'utiliser "strftime", ni donc "strtotime".

    Et date_create_from_format permet de transformer des formats bizarres plus facilement qu'avec un regex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $format = 'd/m/Y-H:i';
    $date = '31/01/2013-20:23';
     
    $date = date_create_from_format($format, $date);
    $date = date_format($date, 'Y-m-d H:i');
    // 2013-01-31 20:23
    remarque que ça fourni aussi un format valide qui te permettrait d'utiliser "strtotime" et donc "strftime" si tu avais besoin de dates avec des lettres en français.

  6. #6
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2012
    Messages : 81
    Points : 44
    Points
    44
    Par défaut
    Merci pour cette solution.

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

Discussions similaires

  1. Problème de date dans requête de màj imbriquée
    Par VirginieGE dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/07/2004, 15h34
  2. problème de date
    Par baboune dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 10/06/2004, 10h52
  3. Problème de date dans MONTHS_BETWEEN
    Par ghostlord79 dans le forum Oracle
    Réponses: 10
    Dernier message: 07/04/2004, 11h21
  4. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 15h05
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

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