Code php pour incrémenter les mois

[Résolu]
Signaler
-
 yamya -
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

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
13
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.
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
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
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
Messages postés
197
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
20 février 2013
1
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
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
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