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 :

[Dates] Générer un timestamp de la veille


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut [Dates] Générer un timestamp de la veille
    Bonjour,

    Tout nouveau sur le forum, et également en tant que développeur PHP, je souhaite créer un petit script me permettant de visualiser mes statistiques de fréquentation de mon site pour : la journée en cours, la semaine en cours, le mois en cours.
    Jusque là je n'ai rencontré aucun soucis.

    Mais venu le moment de réaliser le script pour la fréquentation du jour précédent, de la semaine précédente et du mois précédente, je me retrouve face à quelques problèmes.

    Tout d'abord, comment générer le timestamp de la journée d'hier, de la semaine précédente et du mois précédent.
    J'ai utilisé la fonction mktime comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $hier = mktime(0, 0, 0, date("m") , date("d") -1, date("Y"));
    Mais j'ai réalisé que lorsque nous changerons de mois, la valeur de date('d') vaudra 1, et que lorsque je ferais -1, bah il ne vas pas comprendre qu'il faut également enlever 1 au mois date('m') afin de générer le timestamp du dernier jour du mois précédent.

    Je ne sais si je me suis bien expliqué.

    Si vous n'avez pas compris, n'hésitez pas, je tenterai de m'expliquer correctement.

    Merci de m'avoir lu, et merci d'avance pour vos réponses et éventuelles astuces.

  2. #2
    Membre Expert

    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
    Par défaut
    Bonjour,

    Tu t'es très bien expliqué, mais :
    1. tu n'as pas lu le mode d'emploi ;
    2. tu n'as pas fait d'essai.

    Ce qui t'aurait pris moins de temps que d'écrire ce message pour avoir la réponse.

    En admettant que nous soyons le 01-03-2008, ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      list($annee, $mois, $jour) = explode('-', date('Y-m-d'));
     
      echo date('d-m-Y', mktime(0, 0, 0, $mois, $jour - 1, $annee));
    affichera : 29-02-2008.

  3. #3
    Membre chevronné Avatar de TucSale
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 264
    Par défaut
    bonjour,

    Autre solution pour la date d'hier, (nous sommes le 4 mars )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // timestamp 
    echo strtotime("yesterday"). "\n";
    => 1204498800
     
    //date francaise
    echo date("d/m/Y",strtotime("yesterday")). "\n";
    => 03/03/2008
     
    //date anglaise
    echo date("Y-m-d",strtotime("yesterday")). "\n";
    => 2008-03-03

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonjour,
    j'espère tout de même qu'une soustraction est plus optimisée que strtotime.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
      echo date('Y-m-d', $_SERVER['REQUEST_TIME']-86400);
     
    ?>
    Cordialement,
    DaRiaN.

  5. #5
    Nouveau candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut
    Merci pour vos réponses,

    Jeca, de quel mode d'emploi parle tu ?

    Et il est vrai que je n'ai pas fait d'essai, mea culpa

    La proposition de DaRiaN est beaucoup plus pratique que les deux autres solutions, mais je vais également retenir celle de Jeca pour générer le timestamp du mois dernier.

    Je débute en PHP, je n'ai pas encore tous les réflexes et méthodes de réflexion, ni toutes les fonctions existantes.

    Je ne connaissais pas strtotime(), ni list() et ni encore explode()

    Merci à vous

Discussions similaires

  1. [Dates] Générer un calendrier
    Par EvilAngel dans le forum Langage
    Réponses: 1
    Dernier message: 10/08/2006, 00h25
  2. [Dates] repérer les timestamp d'aujourd'hui
    Par peppena dans le forum Langage
    Réponses: 2
    Dernier message: 05/07/2006, 11h12
  3. [Dates] Soustraction de timestamp
    Par illegalsene dans le forum Langage
    Réponses: 5
    Dernier message: 18/05/2006, 10h14
  4. Soustraire 2 dates en unix timestamp
    Par MaKKrO dans le forum C
    Réponses: 7
    Dernier message: 13/04/2006, 08h29
  5. Date parser un timestamp
    Par jeb001 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 24/10/2005, 16h01

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