Code php pour incrémenter les mois

Résolu
mwuhid1 - 16 janv. 2013 à 22:20
 yamya - 5 juin 2013 à 19:36
Bonjour à tous,
J'ai besoin d'une fonction PHP à qui on donnerait un mois (ex: Juillet 2012) et un nombre de mois à ajouter (ex:3) et retournerait le mois correspondant à l'addition des deux paramètres (ex: Octobre 2012).
Ex: Fonction (2/2014, 4) retournerait 6/2014
Fonction (4/2012, 12) retournerait 4/2013
Merci de bien vouloir me venir en aide si vous pouvez
A voir également:

8 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
18 janv. 2013 à 17:35
Salut,

Tout ceci existe déjà, c'est géré par les classes DateTime et DateInterval. Bref, ça ne sert à rien de vouloir absolument réinventer la roue. Un petit exemple :

<?php

function disp($d)
{
  echo $d->format('Y-m-d H:i:s'), PHP_EOL;
}

$dt = new DateTime();
disp($dt);

$dt->add(new DateInterval('P3M'));
disp($dt);

$dt->add(new DateInterval('P1YT8H10M'));
disp($dt);

$dt->sub(new DateInterval('P5YT23H'));
disp($dt);

Et ce que ça a donné à l'heure à laquelle je l'ai lancé :
-> php date.php
2013-01-18 17:30:00
2013-04-18 17:30:00
2014-04-19 01:40:00
2009-04-18 02:40:00

Pour ceux qui auraient la flemme de chercher dans al doc, sachez que le constructeur de DateTime accepte en premier paramètre une chaîne décrivant une date/heure afin de l'utiliser au lieux de la date et l'heure courantes.
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
16 janv. 2013 à 23:44
Montre ce que t'as fait, ne t'imagine pas qu'on va coder ça à ta place.

L'algorithme est plus que trivial :
* Ajouter x à la date (les deux sont des paramètres)
* Si le mois de la date est > 12, le remettre à 1 et incrémenter l'année
* Retourner la nouvelle date

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
Merci, ghuysmans99.
Merci pour l'algo.
J'ai pu faire avec une date en forme jj/mm/aaaa se trouvant dans la variable $date et le pas d'incrémentation se trouvant dans la variable $nbrmois:

$Date1= explode ("/",$date);
$mois=$Date1[1];
$an=$Date1[2];

$mois=$mois+$nbrmois;

While ($mois>12){
$mois=$mois-12;
$an=$an+1;
}
$Date2=$mois.'/'.$an;

ca a réussi. Merci
0
cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
17 janv. 2013 à 10:36
Bonjour,

tu peux utiliser la fonction mktime aussi.

date_default_timezone_set('Europe/Paris');
function addMonth($date, $month = 0)
{
    $date = explode('/', $date);
    $date = mktime(0, 0, 0, $date[0] + $month, 1, $date[1]);
    return date('m/Y', $date);
}




bonne journée
0

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

Posez votre question
0
salut svp je voudrais savoir comment à partir d'un formulaire d'insertion générer le matricule(à partir du choix)par exemple si je choisit
specialite informatique le premier champ du matricule est I et ainsi de suite.
l'idée est avec un tableau en php qui contient les champs de cette matricule avec (les 3 derniers champs s'incrémentent automatiquement) et avec des conditions if ?,

exemple : matricule = I13001 , I13002 , M13008.... (i : informatique; M: mathématique , 13 : année 2013 , 001 : les 3 champs qui s'incrimentes automatiquement )
merci bcp
0
yamya,
je pense que vous feriez mieux de relancer une nouvelle discussion pour que votre problème soit vu par un plus grand nombre de personnes pouvant y apporter une solution
0
Merci mwuhid1
0
Rejoignez-nous