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 :

fonction de date qui marche + où -


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    je_suis_debutant
    Invité(e)
    Par défaut fonction de date qui marche + où -
    bonjour, excusez moi pour le titre.

    je me suis amusé à faire une fonction de date qui permet de faire :

    dernier visite il y as 1 s et si je reactualise la page il mettra 1 m où 2 mn où 30 mn etc......

    et quand un membre se connecte on verras dernier visite : il y as 1 s où bien 5 s où 1 min où 1 h etc...

    donc voilà le code :


    mais il y as 2 petits souci

    il m'affiche : Dernière visite : Il y a 1h

    au lieu : Dernière visite : Il y a 1 min

    donc il reste fixer sur 1 h

    au lieu de mettre seconde aprés les minutes et aprés heur etc...

    et l'autre souci il m'affiche : Tuesdaye 16/06/2009à 12h28

    et moi je voudrais qu'il affiche :mardi 16/06/2009 à 12h28

    merci de votre aide
    Dernière modification par je_suis_debutant ; 20/06/2009 à 22h01. Motif: car il m('a pas donné un code

  2. #2
    Membre émérite Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Par défaut
    Bonsoir,

    Pour ton premier souci :

    $difference n'est pas une date, mais une durée,
    il me semble (mais je peux me tromper),
    que, conceptuellement, le problème vient de là.

    En effet, la fonction date() retourne une date, pas une durée.

    Hors, comme la date qu'elle retourne
    part du 1er janvier 1970 00:00:00 GMT.
    Avec le décalage horaire de 1 heure,
    si $difference vaut 5 par exemple,
    elle te retourne 1er janvier 1970 01:00:05
    et tu affiches : dernière connexion il y a 1 heure,
    ce qui est évidemment faux.

    Mais, on peut aussi remarquer que,
    le temps qui s'est écoulé depuis la dernière connexion
    n'est pas égal à 1er janvier 1970 01:00:05.
    Donc,
    même si,
    en bidouillant avec le fuseau horaire,
    tu arrivais à tes fins (1er janvier 1970 00:00:05),
    je ne suis pas sûr que ce serait la meilleure solution.

    Pour ce tu veux faire l'opérateur modulo(%) est peut-être plus approprié.
    ($difference-($difference%3600))/3600 = nombre d'heures
    ($difference%3600-$difference%60)/60 = nombre de minutes
    $difference%60 = nombre de secondes

    Quant au second souci :

    Plutôt que date(),
    il y a la fonction strftime()
    précédée de la fonction setlocale()
    qui permet de formater les dates en français.

    En attendant qu'un spécialiste des problèmes de dates (durées) en PHP passe par là, voilà qui devrait permettre de renommer le sujet en :
    fonction de date qui marche ++ que -


    Fred

Discussions similaires

  1. fonction date() qui ne marche pas
    Par Décibel dans le forum Runtime
    Réponses: 11
    Dernier message: 03/08/2010, 20h36
  2. Réponses: 5
    Dernier message: 02/10/2006, 19h24
  3. Fonction javascript qui marche qu'une fois sous Firefox
    Par ns_deux dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2006, 10h38
  4. [Surnaturel] Une fonction qui marche en débug, pas en release
    Par 10_GOTO_10 dans le forum C++Builder
    Réponses: 6
    Dernier message: 04/07/2006, 14h22
  5. Fonction qui marche sous FF mais pas IE
    Par Oluha dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2006, 14h07

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