ajouter 6 mois à une date donnée

ajouter 6 mois à une date donnée - PHP - Programmation

Marsh Posté le 24-07-2006 à 12:55:44    

bonjour
 
j'ai une table avec deux champs date : date_anniversaire, date_rappel
je souhaiterai ajouter une 6 mois à une date:
 
je voudrais
$nombre_mois="6";
$date_anniversaire= $_POST["date_anniversaire"];
$date_rappel : $date_anniversaire + $nombre_mois
 
quelqu'un peu m'aider, j'ai trouvé un exemple avec la date du jour
et la fontion DATE, mais c'est par rapport à la date du jour, j'ai testé
sans succés
 
merci de vos pistes

Reply

Marsh Posté le 24-07-2006 à 12:55:44   

Reply

Marsh Posté le 24-07-2006 à 13:06:46    

Reply

Marsh Posté le 24-07-2006 à 13:15:39    

si c'est pour faire un insert/update/select sur ta table, je te conseillerais plutot d'utiliser les fonctions kivonbien de ton sgbd.
Par exemple sur mysql, tu peux jeter un oeil à  la doc

Reply

Marsh Posté le 24-07-2006 à 13:25:37    

Ah oui tiens, j'avais même pas noté l'allusion à la table...
 
(bon, par contre, l'utilité de 2 champs dont un est calculé à partir de l'autre, ça froisserait certains de mes ex-profs :D)

Reply

Marsh Posté le 24-07-2006 à 14:24:06    

Pour insérer une valeur, dans une table, avec +6 mois par rapport à une autre c'est comme ça:  
(ton_champs + INTERVAL '6' MONTH)

Reply

Marsh Posté le 24-07-2006 à 14:28:54    

foxcssfox a écrit :

bonjour
 
j'ai une table avec deux champs date : date_anniversaire, date_rappel
je souhaiterai ajouter une 6 mois à une date:
 
je voudrais
$nombre_mois="6";
$date_anniversaire= $_POST["date_anniversaire"];
$date_rappel : $date_anniversaire + $nombre_mois
 
quelqu'un peu m'aider, j'ai trouvé un exemple avec la date du jour
et la fontion DATE, mais c'est par rapport à la date du jour, j'ai testé
sans succés
 
merci de vos pistes


En php, les fonctions de date travaillent toutes en secondes. Tu peux regarder la doc de "mktime". Mais si toi ton champ "date" est de la forme "jj:mm:aaaa" il te suffit de découper ce champ avec "explode" pour en extraire le jour, mois et année puis dire "$mm_rappel=$mm_anniversaire + 6" avec un petit test si "$mm_rappel > 12"

Reply

Marsh Posté le 24-07-2006 à 14:30:18    

ok merci tout le monde, je sais pas si je vais m'en sortir tout seul, mais merci... je vais opter pour la solution de Sver, et utiliser la fonction explode et travailler sur le mois...
merci en tout cas

Reply

Marsh Posté le 24-07-2006 à 16:21:09    

j'ai une date de realisation
je voudrais une date à + 6MOIS...
$date_alerte = mktime (0,0,0,date(`m`,$date_realisation )+6,date(`d`,$date_realisation ),date(`Y`,$date_realisation ))
 
et voila ce que j'obtiens comme resultat :  959724000
 

Code :
  1. <div><br />
  2. <label class="label-titre1">Date de la prochaine alerte :</label>
  3. <input id="date_alerte" style="width: 100px;" maxlength="50" size="55" name="date_alerte"
  4. value="<?php $date_alerte = mktime (0,0,0,date(`m`,$date_realisation )+6,date(`d`,$date_realisation ),date(`Y`,$date_realisation )); echo $date_alerte; ?>" />
  5. </div>


 
voila, d'après tout ce que j'ai pu lire ce que ca donne : ca ne marche pas..
grrr, je m'arrache les cheveux...
 
merci de votre aide


Message édité par foxcssfox le 24-07-2006 à 16:31:06
Reply

Marsh Posté le 24-07-2006 à 16:23:00    

pense a gerer le cas ou le mois courant est superieur a juin ( auquel cas il faut passer à l'annnée suivante )

Reply

Marsh Posté le 11-11-2011 à 18:30:10    

Concernant le php, je pense que tout ce la est juste, mais il n'y a pas que le mois à controler.
Il faut aussi vérifier si le jour est à 31 et que le mois + 6 comporte bien 31 jours et traiter aussi le cas des 28 et 29 février....


---------------
agence tag
Reply

Marsh Posté le 11-11-2011 à 18:30:10   

Reply

Marsh Posté le 12-11-2011 à 00:34:14    

La classe DateTime c'est pas fait pour les chiens, et t'as même pas à contrôler le mois pour passer à l'année suivante, gérer les 28/39 févriers, etc.
 
Ajouter 6 mois à une date à coups d'explode ça me parait du gros délire ...
 
http://sg2.php.net/manual/fr/datetime.add.php


---------------
Mon Feedback !
Reply

Marsh Posté le 12-11-2011 à 09:10:35    

On va peut être éviter de déterrer des topics vieux de 5 ans non ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed