Bonjour,

J'ai deux calendrier (DateDeb ET DateFin).
le DateDeb est variable, tendis que le DateFin est fixe.
Je cherche comment ajouter 1 mois à la DateFin à chaque fois l'user choisis une DateDeb.

Exemple :
dans la DateFDeb j'ai "02/02/2018" il faut que la DateFin ait la valeur : 02/28/2018

thanks

5 réponses


Bonsoir.
Tu pourrais par exemple utiliser une librairie externe, comme par exemple Carbon.
Par contre, ce n'est pas logique ce que tu marques, pour toi rajouter un mois à 02/02/2018 ça donne 02/28/2018 ?
Tu veux peut-être plutôt dire, que la date de fin doit être défini avec le dernier jour du mois.
Par contre, c'est quoi ce format de date Mois/Jour/Année ?
Ou alors c'est Jour/Mois/Année et tu ne sais pas qu'il n'y a que 12 mois dans une année ?

@Lartak il préfère peut-être utiliser le format de date américain.

Salut,
c'est vrai qu'il s'explique pas très bien :D
c'est d'aillleurs pas la première fois que je le constaste :D

function lastDayMonth($date){
    $tdate = date_parse($date);
    return strftime("%Y-%m-%d",mktime(0,0,0,$tdate['month']+1,0,$tdate['year']));
}
function dateEcheance($startdate,$fdm,$nbj){
    if($fdm==true){
        $dateintermediaire = lastDayMonth($startdate);
    }else{
        $dateintermediaire = $startdate;
    }
    return date('Y-m-d',strtotime(date("Y-m-d", strtotime($dateintermediaire)) . " +$nbj day"));
}

Normalement, avec ça, tu devrais pouvoir te "démerder" :D

@plus

Pierre

Salut,

sinon, j'ai tappé la question dans google,
et un post sur Stackoverflow propose ça qui parait très bien :

$a_date = "2009-11-23";
echo date("Y-m-t", strtotime($a_date));

Source :
https://stackoverflow.com/questions/1686724/how-to-find-the-last-day-of-the-month-from-date

Good :D
Adopté :D
Un petit bémol tout de même après année 2038 ;)
ça :

$date = new DateTime('now');
$date->modify('last day of this month');
echo $date->format('Y-m-d');

c'est mieux,

@plus
Pierre