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] Gestion de date en php


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut [Dates] Gestion de date en php
    Bonjour

    je suis sur un script qui permet de gérer l'affichage ou non d'un lien en fonction des dates.

    Ceux que je voudrais faire c'est de n'afficher un lien que tous les 2 jours
    je m'explique :

    par exemple si le lien s'affiche aujourdhui : 25-08-2008 je voudrais que ce lien ne s'affiche qu'après deux jours c'est à dire 28-08-2008 et ainsi de suite jusqu'à une date limite d'affichage du lien

    voici le code que j'ai ecrit mais qui semble ne pas être adapté à ce que je voudrais faire



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?
      //++++FORMTAGE  DES DATES 
     //$dateLimitAffLien = date limite affichage du lien
     //$dateDernierAff=date du dernier affichage du lien
                    $LIMIT=2;
            $dateAUJ=date("Y-m-d");
            $dateDernierAffichageLien= date('Y-m-d',strtotime("+$LIMIT days", strtotime($dateDernierAff)));
            $date1_array = explode("-",$dateAUJ);
            $date2_array = explode("-",$dateDernierAffichageLien);
            $date3_array = explode("-",$dateLimitAffLien);
            $timestamp1 =mktime(0,0,0,$date1_array[1],$date1_array[2],$date1_array[0]);
            $timestamp2 =mktime(0,0,0,$date2_array[1],$date2_array[2],$date2_array[0]);
            $timestamp3 =mktime(0,0,0,$date3_array[1],$date3_array[2],$date3_array[0]);
    //++++ FIN
     
     
     
    //++AFFICHAGE  DU LIEN
     if ($timestamp1==$timestamp2 && $timestamp1<=$timestamp3 )
      {
     print "<a href=\"a.php\">lien</a>";
       }
    //FIN
    ?>

    merci pour votre conseil

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Aujourd'hui ne sera jamais égale à Après-demain.

    Il faut que tu commences ton compteur à une date determinée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    A mon avis, tu as un problème d'analyse man

    Comment veux tu que le serveur sache à quelle date il a commencé à afficher ton lieu ???

    Il faut le mémorisé quelque part, soit dans un cookie, soit une table, soit SESSION. Ensuite cela me parais simple.

    A+

  4. #4
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut
    Bonjour

    merci pour votre post


    Pour la date de dernière affichage du lien, cette date est mémorisée dans la base de donnée.

    J'enregistre dans ma base chaque date de dernier clique du lien qui est
    $dateDernierAff mais j'ai juste mis $dateDernierAff dans le code pour simplifier.



    remarque $LIMIT = 2 est variable qui pourra prendre n'importe quelle valeur exemple :3,5,7,1,4 .....

    Ce que je voudrais donc c'est
    ex:

    si $dateDernierAff = 25-08-2008 => date prochain affichage = 28-08-2008
    si le lien s'affiche et si on a cliquer
    $dateDernierAff=28-25-2008 date prochain affichage= 31-08-2008
    si le lien n'est pas cliquer
    si $dateDernierAff = 25-08-2008 et
    date prochain affichage =dateDernierAff+4 et ainsi de suite jusqu'a une date limite $dateLimitAffLien

    merçi

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $dateDernierAff = "25/08/2008";
    list($jour,$mois,$annee) = explode("/", $dateDernierAff);
     
    $prochain_affichage = mktime(0,0,0,$mois,$jour + $limit, $annee);
     
    if (mktime() >= $prochain_affichage) {
     // affiche lien
    }
    Et lien renvoit vers une page qui met à jour $dateDernierAff a aujourd'hui dans la base de donnée et fait ce que tu veux d'autre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre éclairé Avatar de stomerfull
    Inscrit en
    Septembre 2005
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 307
    Par défaut
    merci bien pour votre réponse
    qui répond toute à fait à ceux que je cherchais

    Entre temps je vais poster içi les solutions proposés par toutes les communauté qui je pense faire le même traitement qui a été posté précédement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $dateDernierAff = strtotime( '...' );
    $dateLimitAffLien = strtotime( '...' );
    $répétition = 2; 
     
    $dateAffichage = strftime('%d%m%Y', strtotime( '+' . $répétition . ' days', $dateDernierAff ) );
     
    if (strftime('%d%m%Y') === $dateAffichage ) and time() <  $dateLimitAffLien ) {
      echo '<a href="a.php">lien</a>';
    }
    ?>
    Merçi de me coriger s'il y a des erreurs et jespere que ces scripts aidera ceux qui visiteront ce forum

    Grand merci a sabotage

Discussions similaires

  1. [XL-2007] couleur cellule date differente si date passee, ou date du jour
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/03/2011, 08h24
  2. [Dates] Gestion de date
    Par Erwan M. dans le forum Langage
    Réponses: 5
    Dernier message: 08/04/2008, 16h05
  3. [Dates] Gestion des dates de fichiers
    Par dug dans le forum Langage
    Réponses: 3
    Dernier message: 16/09/2006, 20h24
  4. [Dates] Gestion des dates avant 1970
    Par viny dans le forum Langage
    Réponses: 4
    Dernier message: 30/08/2006, 17h01
  5. [Dates] gestion de date
    Par rom950 dans le forum Langage
    Réponses: 2
    Dernier message: 15/02/2006, 18h05

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