28/02/2007 * * @param string $date * @param int $decalage * @param string $format * @return string */ function baz_moisdecal($date, $decalage, $format = 'Y-m-d H:i:s') { include_spip('inc/filtres'); $date_array = recup_date($date); $annee = $mois = $jour = NULL; if ($date_array) { list($annee, $mois, $jour) = $date_array; } if (!$jour) { $jour = 1; } if (!$mois) { $mois = 1; } $mois2 = $mois + $decalage; $date2 = mktime(1, 1, 1, $mois2, $jour, $annee); // mois normalement attendu $mois3 = date('m', mktime(1, 1, 1, $mois2, 1, $annee)); // et si le mois de la nouvelle date a moins de jours... $mois2 = date('m', $date2); if ($mois2 - $mois3) { $date2 = mktime(1, 1, 1, $mois2, 0, $annee); } return date($format, $date2); }