Salut.
Déja, première chose : date() renvoie la date sous le format que tu veux ! Et peut même te dire, compte tenu du mois et de l'année (bissextile ou non), le nombre de jours dans le mois. Bref, tout pour faire ce que tu souhaites.
Voila un petit code PHP qui devrait t'aider :
function datecheck($date, $yearepsilon=5000, $format='dmy')
{
$date=str_replace("/", "-", $date);
$format = strtolower($format);
if (count($datebits=explode('-',$date))!=3) return false;
$year = intval($datebits[strpos($format, 'y')]);
$month = intval($datebits[strpos($format, 'm')]);
$day = intval($datebits[strpos($format, 'd')]);
if ((abs($year-date('Y'))>$yearepsilon) || // year outside given range
($month<1) || ($month>12) || ($day<1) ||
(($month==2) && ($day>28+(!($year%4))-(!($year%100))+(!($year%400)))) ||
($day>30+(($month>7)^($month&1)))) return false; // date out of range
return array('year' => $year,'month' => $month,'day' => $day);
}
$m = date('m');
$y = date('Y');
$mois = mktime( 0, 0, 0, $m, 1, $y );
setlocale(LC_ALL, 'fr_FR');
datecheck() te permet, en lui passant une date sous le format jj/mm/aaaa, de récupérer, dans un tableau, le jour, le mois et l'année (en testant au passage si ça dépasse l'année limite qui est $yearepsilon (ici fixée à 5000, donc sur un intervalle de 10 000ans).
Pour utiliser la fonction, fait par exemple
$today = datecheck(date("d/m/Y"));
$today['year'] accède à l'année en cours
$today['month'] pour le mois en cours
et $today['day'] pour le numéro du jour dans le mois.
Pour récupérer le nombre de jours dans le mois, fais $nombreDeJours = intval(date("t",$mois));
Voila, bon courage tu devrais y arriver avec tout ça :) Il faut juste bien tester si tu dépasses le mois en cours ou pas. Sinon une autre possibilité est de faire avec timestamp, en rajoutant 15 jours au timestamp actuel et en lui faisant subir une conversion.