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] Soustraire / addtionner fonction mtkime() avec une date


Sujet :

Langage PHP

  1. #21
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    1238450400 c'est que j'obtiens pour $adh

  2. #22
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    bon je m'étais fait un petit script pour me faciliter la vie, voilà ce qu'il me sort

    La date du timestamp 1238450400 est le 31-03-2009 00:03:00
    Donc c'est normal que le script te dise de payer, vu que d'apres la date ca devrait être payé depuis today à minuit et 3 minutes

  3. #23
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    j'en peux plus, le strtotime m'a rendu fou lol, il faut que j'enlève l'heure c'est ça

  4. #24
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    hmm non mais il est normal que ça t'affiche "il est temps de payer" vu que ce message s'affiche à partir du moment où $adh vaut "now -1 mois"

    La date $adh est ce matin, si tu ne veux plus que le message s'affiche après la date passée, il faut écrire :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(  $date_max > $adh && $adh > time() ) {
          echo "<p>Il est temps de payer !</p>";
    } else {
    	echo "<p>C'est bon, t'as le temps avant de passer à la caisse</p>";
    }
    Afin de vérifier pour les X premiers mois de l'année précédent chaque anniversaire d'adhésion

  5. #25
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    là il m'affiche le la deuxième condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    else {
    	echo "<p>C'est bon, t'as le temps avant de passer à la caisse</p>";
    }
    le problème c'est que j'ai un membre où la date d'adhésion est le 16/04/2008 donc ça doit afficher juste ce membre.
    excuse moi si je me trompe :
    $date_max c'est la date d'aujourd'hui + 1 mois
    mais $adh > time() ???

  6. #26
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    $adh c'est la date d'adhésion (avec l'année en court)

    donc si le gars s'était inscrit le "2008-04-29"
    $adh = 2009-04-29 (converti en timestamp)

    time() = le timestamp courant (2009-03-31 17:35:00)

  7. #27
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    franchement je vois pas où est l'erreur,
    ce qu'on fait c'est :
    si $date_max (today +1mois) est supérieur à la date d'adh et que adh est supérieur à time() alors affiche moi lui

    y a pas un truc qui cloche ? j'ai l'impression que sa "résonne" chez moi mais je vois pas

  8. #28
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    arf arf arf je crois que je me suis un peu perdu dans le code à force de l'étaller toute la journée

    essaye avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(  $date_max < $adh && $adh > time() ) {
    Ce qui donnerait (t'as raison, ça fait du bien d'écrire en francais ^^) :

    si la date d'adhésion est plus petit que today +1 mois et qu'elle est plus grande que today => alors on affiche qu'il faut payer


    PS : là j'vais quitter le boulot (ouais, pas grand chose à faire today, j'ai bossé trop vite ) j'ai 40 minutes de train pour rentrer chez moi, j'vais en profiter pour relire toute la conversation depuis le début

  9. #29
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Voila, je suis chez moi
    Comme je l'avais écrit, il faut bel et bien comparer ta date d'adhésion avec DEUX dates, j'avais écrit time() un peu trop vite, en effet comparer à la date du jour => ça donne n'importe quoi ^^

    Sans le stress de me faire chopper au taff à trainer sur un forum, il m'a fallu que 5 minutes pour trouver la solution. Attention, j'ai tout repris de 0

    Code php : 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
    <?php
    $echeance = "1 month";
     
    $adhArray = array("2008-09-23", "2009-03-31", "2007-04-16", "2043-04-29", "2007-05-01", "2007-05-02", "2007-05-03", "2007-05-04", "2007-05-05");
     
    $result = array();
    foreach( $adhArray AS $adh ) {
    	$adh_comp = date("m-d", strtotime($adh));
    	$date_min = date("m-d", strtotime(date("Y-m-d")." -".$echeance));
    	$date_max = date("m-d", strtotime(date("Y-m-d")." +".$echeance));
     
    	if(  $adh_comp >= $date_min && $adh_comp <= $date_max ) {
    		  $result[$adh_comp] = "FAUT PAYER";
    	} else {
    		$result[$adh_comp] = "FAUT PAS PAYER";
    	}
    }
    ?>

    PS : En pièce jointe tu trouveras le fichier avec les commentaires / explications ainsi que le résultat
    Fichiers attachés Fichiers attachés

  10. #30
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    salut
    en tout cas je te remercie, quand même tu étais une journée entière sur ce problème ,
    Je viens de voir le code, j'ai modifié la sauce j'ai rajouté un peu de sel, poivre et le tout est joué , ça marche nickel chrome !
    Je te remercie de tout cœur !!!!!
    sur le pièce jointe j'ai vu un commentaire :
    // Un tableau de date pour simuler ta bouche
    mdr sans doute ma boucle, c'est pas grave lolllll
    en tant cas je le re re répète merci !!

  11. #31
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Citation Envoyé par akara Voir le message
    // Un tableau de date pour simuler ta bouche
    mdr sans doute ma boucle, c'est pas grave lolllll

    ooooooops ca c'est la honte !!! sinon content que ça marche enfin ^^

  12. #32
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    je voulais te demander en bonus lol
    si tout cela aurait pu se faire en requete sql ?

  13. #33
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    yep grâce à BETWEEN, DATE_FORMAT et INTERVAL ^^

  14. #34
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    merci !!! je ferai ça plus tard merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [WD17] Fonction Saisie avec une date
    Par alex1005 dans le forum WinDev
    Réponses: 5
    Dernier message: 02/10/2012, 15h40
  2. Réponses: 12
    Dernier message: 29/03/2012, 14h47
  3. [Dates] Soustraire un nombre de jour à une date
    Par lesgars dans le forum Langage
    Réponses: 2
    Dernier message: 09/12/2005, 15h43
  4. Réponses: 2
    Dernier message: 16/08/2005, 16h33
  5. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 16h30

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