Nombre de jours restants avant l'expiration de l'abonnement d'un client

cs_midoxe Messages postés 98 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 17 janvier 2012 - 6 oct. 2011 à 10:55
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 7 oct. 2011 à 15:13
Bonjour,

les amis je suis vraiment bloquer..... je demande votre aide

j'essaie de calculer le nombre de jours ou de mois restant à un client avant l'expiration de son abonnement,

exemple : le client à ouvert son compte le 02-10-2011 et il a choisi comme durée d'abonnement 3 mois.

donc l'affichage du résultat dans l'espace client sera par exemple : Il vous reste X mois et Y jours avant la fin de votre abonnement.

donc en fait j'ai du mal a traiter ça, surtout que je dois prendre compte le nombre de jours de chaque mois...

Quelqu'un aura une solution a me proposer ?? je serai vraiment très reconnaissant

Merci d'avance pour votre aide
A voir également:

21 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
6 oct. 2011 à 13:42
bonjour

as tu un code ?
utilises tu une base mysql
utilises tu timestamp

il faut comparer la date du jour
à celle de l'enregistrement

récupérer les deux dates les mettre en timestamp et comparer


Bonne programmation !
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
6 oct. 2011 à 13:45
un peu de litterature ...

datetime vers timestamp

<?php
function datetime2timestamp($string) {list($date, $time) = explode(&#8217; &#8216;, $string);
list($year, $month, $day) = explode(&#8217;-', $date);
list($hour, $minute, $second) = explode(&#8217;:', $time);

$timestamp = mktime($hour, $minute, $second, $month, $day, $year);

return $timestamp;
}
?>

http://phpcodeur.net/articles/php/dates


Bonne programmation !
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
6 oct. 2011 à 13:48
je reposte la fonction il y a des caractères
qui s'affichent en code html

function datetime2timestamp($string) {list($date, $time) = explode(&#8217; &#8216;, $string);
list($year, $month, $day) = explode(&#8217;-', $date);
list($hour, $minute, $second) = explode(&#8217;:', $time);

$timestamp = mktime($hour, $minute, $second, $month, $day, $year);

return $timestamp;
}


Bonne programmation !
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
6 oct. 2011 à 13:50
explode(’-', $date);

comme explode('-', $date);

explode(’:', $time);

comme explode(':', $date);
Bonne programmation !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
6 oct. 2011 à 16:15
Et en PHP 5.3 tu as aussi dateDiff qui est assez sympathique.
S.
0
cs_midoxe Messages postés 98 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 17 janvier 2012 1
6 oct. 2011 à 17:46
Merci pour vos réponses, mais en fait le problème c'est que quand l'utilisateur s'abonne

par exemple le 02-10-2011 et qu'il a choisi 3 mois dans son abonnement par exemple...

comment est ce que je peux faire pour connaitre la date de fin de son abonnement qui est

d'ici 3 mois tout en prenant compte le fait que dans chaque mois il y'a un

nombre de jour différent.

une fois ceci est fait tes vos réponse tous utiles?

Merci d'avance pour aide
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
6 oct. 2011 à 19:35
echo '<hr>';
echo $plus3mois=strtotime("+3 month");
echo '
';
echo $dans3mois=date('Y-m-d H:i:s',$plus3mois);
echo '<hr>';


Bonne programmation !
0
cs_midoxe Messages postés 98 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 17 janvier 2012 1
6 oct. 2011 à 22:46
Bonsoir,

Merci beaucoup pour ta réponse, j'ai juste un petit soucis c'est que ce que tu as fais
permet d'ajouter 3 mois a la date par défaut ou date système...

Mais comment faire pour ajouter à n'import quel date 3 mois

exemple : $Demarabonn=01-09-2011;

quand j'ai fais ça :

echo $plus3mois=strtotime("+3 month");
echo $dans3mois=date($Demarabonn,$plus3mois);

ça n'a pas marcher du tout..t'aura une solution pour ça

Merci infiniment pour ta réponse elle m'aidera bcp
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
7 oct. 2011 à 08:50
Moi je répète ma question: Es-tu sur PHP 5.3 ?
Quelle est ta version ?
S.
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 oct. 2011 à 10:01
essaie

<?php
echo 'dans 10 jours : '.$dans10jours = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+10,  date("Y")));
//'02 janvier 2011' + 3mois
$mois3=90*24*60*60;
echo 'dans 3 mois depuis : 02 janvier 2011 donne '.$dans3mois = date("d/m/Y",( mktime(0, 0, 0, date(1), date(2),  date(2011)) + $mois3 ));

?>


Bonne programmation !
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 oct. 2011 à 10:40
<?php
function date3mois($d,$plus=null){
static $newdate;
$dx=array();
$dx=explode('/',$d);
$newdate = date("d/m/Y",( mktime(0, 0, 0, date($dx[0]), date($dx[1]), date($dx[2])) + $plus ));
return $newdate;
}

echo date3mois('01/04/2010',$plus=90*24*60*60);
?>



Bonne programmation !
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 oct. 2011 à 10:43
Bonjour,

Tu aurais probablement du commencer par apprendre le php et lire la doc sur les dates. Ls helpeurs, dans leur grande bonté ont répondu une bonne dizaine de fois à ta question, mais apparement, tu n'as toujours pas su adapter le truc, ni chercher les fonctions qu'ils utilisent sur php.net.

Va lire la doc des fonctions
date
mktime

Cordialement,

Maxime
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 oct. 2011 à 10:53
je te reposte ma fonction j'ai une erreur
dans la suite des arguments de mktime
c'est donc :

<?php
echo '<hr>';
function date3mois($d,$plus=null){
static $newdate;
$dx=array();
$dx=explode('/',$d);
$newdate = date("d/m/Y",( mktime(0, 0, 0, date($dx[1]), date($dx[0]), date($dx[2])) + $plus ));
return $newdate;
}

echo '01/01/2010 : '.date3mois('01/01/2010',$plus=90*24*60*60);
?>

Bonne programmation !
0
cs_midoxe Messages postés 98 Date d'inscription samedi 25 septembre 2010 Statut Membre Dernière intervention 17 janvier 2012 1
7 oct. 2011 à 12:05
Merci infiniment cod57, pour ton aide

Pour coucou747 : je ne comprend pas ou est ton problème je demande de l'aide comme est ce que je le propose a mes amis des solutions sur ce forum quand je connais une réponse.

au lieu de dire des insultes et des ordres ça aurait été mieux si tu as proposer de l'aide, sinon reste en dehors de cette discussion

                
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
7 oct. 2011 à 13:05
[quote=midoxe]Pour coucou747 : je ne comprend pas ou est ton problème je demande de l'aide comme est ce que je le propose a mes amis des solutions sur ce forum quand je connais une réponse.

au lieu de dire des insultes et des ordres ça aurait été mieux si tu as proposer de l'aide, sinon reste en dehors de cette discussion/quote

non mais ... c'est le monde à l'envers

il est claire que tu ne comprends ni le php ni le Français ...

depuis le début tous les intervenants t'ont donné les bonnes réponses mais comme tu n'y comprends rien tu penses que ce n'est pas la bonne.

Quand à Coucou747 ... il n'y a aucune insulte dans son message .. ce n'est que la vérité mais elle ne semble pas te convenir ...
sur ce, tu décides de contacter les admins sous prétexte de "Dérangement" ...

Mais le dérangement c'est toi qui l'occasionne en ne comprenant pas les réponses et en faisant appel aux admins pour des problèmes imaginaires.

Suis les conseils de Coucou747 ils sont très judicieux ... d'ailleurs c'est pas là (apprendre les bases du php) que tu aurais du commencer ça t'aurais éviter de perdre ton temps et par la même celui des intervenants.



[hr]@+Cirec
[hr]
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
7 oct. 2011 à 13:15
Et moi qui cherchais à l'endoctriner à la POO.. c'est peine perdu.
pour cod57.. y'a des choses que je ne comprends pas..

echo '01/01/2010 : '.date3mois('01/01/2010',$plus=90*24*60*60);

Il sert à quoi ton '$plus=' ??

function date3mois($d,$plus=null){

L'intérêt du =NULL ?
static $newdate;

L'interêt de cette ligne ?

$dx=array();

Inutile avec la ligne suivante..

$dx=explode('/',$d);

Croisons les doigts pour qu'il donne une chaine bien formattée (vu le gars en question.LOL !!)

$newdate = date("d/m/Y",( mktime(0, 0, 0, date($dx[1]), date($dx[0]), date($dx[2])) + $plus ));

1. Ca peut passer en return directement non ??
2. + $plus avec $plus = NULL c'est plutot moyen
3. date($dx[1]) => tu préfères pas $dx[1] tout seul ??

S.
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 oct. 2011 à 13:43
@syndrael

ma fonction est pédagogique est pas une
optimisation de code je détaille tout pour que que les non initiés comprennent ...


$plus=null => pas de return si le 2eme arg est manquant ...

$plus comme ça il peut décider de la durée

fonctionne
echo '01/01/2010 : '.date3mois('01/01/2010',$plus=90*24*60*60);

fonctionne pas
echo '01/01/2010 : '.date3mois('01/01/2010');

c'est vrai que on peut tout placer dans le return mais pas très clair pour un débutant

j'ai passé passer plus de temps à écrire mes remarques que la fonction

++ tous le monde

Bonne programmation !
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
7 oct. 2011 à 13:56
Pédagogique ok.. mais le gars il va prendre ça pour argent comptant..LOL !!
$plus=null => pas de return si le 2eme arg est manquant ...

Ben raison de plus pour lui faire comprendre qu'une fonction ça doit avoir un bon nombre d'argument.. et pafff pour le bizu !! LOL..
date3mois('01/01/2010',$plus=90*24*60*60)

Je l'ai toujours pas compris le $plus = ..LOL !!
S.
0
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
7 oct. 2011 à 14:04
Bonjour,

pas besoin de faire un 90*24*60*60, mktime gère bien l'ajout de mois au mois passé en paramètre (oula) et décalera si besoin (cf la doc de mktime)

<?php

$madate = '01-05-2010'; // ma date exemple

list($jour, $mois, $annee) = explode('-', $madate);

// on ajoute 3 mois à cette date
$iFuturDate = mktime(0, 0, 0, $mois+3, $jour, $annee);

echo date('d-m-Y', $iFuturDate);


donnera (roulement de tambour) : 01-08-2010


bonne après midi
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
7 oct. 2011 à 14:11
en fait tu as raison syndrael je pense qu'il débute le php ... mais je pense que son souci comme 80 % des questions faut que ça fonctionne le reste ...
le problème avec les forums c'est comme les sms c'est des-fois vide d'émotions c'est pourquoi coucou747 c'est pris cette remarque alors que à la base ça remarque est correcte


Bonne programmation !
0
Rejoignez-nous