You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
<?php |
|
if (!defined('_ECRIRE_INC_VERSION')) { |
|
return; |
|
} |
|
/* reprise d'une fonction du plugin Agenda pour la composition "blog" (actualites) |
|
* renommee pour eviter plantage |
|
* https://zone.spip.org/trac/spip-zone/browser/_plugins_/agenda/trunk/agenda_fonctions.php#L32 |
|
*/ |
|
/** |
|
* decale les mois de la date. |
|
* cette fonction peut raboter le jour si le nouveau mois ne les contient pas |
|
* exemple 31/01/2007 + 1 mois => 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); |
|
}
|
|
|