web-dev-qa-db-fra.com

Le moyen le plus simple d’incrémenter une date en PHP?

Disons que je reçois une chaîne, "2007-02-28", quel est le code le plus simple que je pourrais écrire pour transformer cela en "2007-03-01"? En ce moment, j'utilise simplement strtotime(), puis j'ajoute 24*60*60, puis date(), mais je me demande simplement s'il existe une méthode plus propre, plus simple ou plus intelligente.

37
davr

Une façon propre est d'utiliser strtotime()

$date = strtotime("+1 day", strtotime("2007-02-28"));
echo date("Y-m-d", $date);

Je vous donnerai le 2007-03-01

78
Ólafur Waage

C'est plus propre et plus simple d'ajouter 86400. :)

La manière high-tech est de faire:

$date = new DateTime($input_date);
$date->modify('+1 day');
echo $date->format('Y-m-d');

mais ce n'est vraiment intéressant que si vous faites, par exemple, une séquence de transformations sur la date, plutôt que de simplement chercher demain.

31
chaos

Vous pouvez faire l’addition directement dans strtotime, par exemple.

 $today="2007-02-28";
 $nextday=strftime("%Y-%m-%d", strtotime("$today +1 day"));
17
Paul Dixon

Une autre façon consiste à utiliser la fonction mktime (). C'est une fonction très utile ...

$date = "2007-02-28";
list($y,$m,$d)=explode('-',$date);
$date2 = Date("Y-m-d", mktime(0,0,0,$m,$d+1,$y));

mais je pense que strtotime() est meilleur dans cette situation ...

6
Bajlo

La manière la plus simple ...

echo date('Y-m-d',strtotime("+1 day"));    //from today

OU à partir de la date spécifiée ...

echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));
5
Biswadeep Sarkar

Bonjour, vous pouvez essayer ceci ci-dessous surtout si vous êtes français

$date = date('l j F Y');
#increment the date
$date2 = date('l j F Y', strtotime("+7 day"));

pour traduire en français, vous pouvez utiliser la fonction setlocale () ou la fonction ci-dessous:

function fr_date($date){

    $date = explode(' ', $date);

    $date = str_replace('Monday','Lundi',$date);
    $date = str_replace('Tuesday','Mardi',$date);
    $date = str_replace('Wednesday','Mercredi',$date);
    $date = str_replace('Thursday','Jeudi',$date);
    $date = str_replace('Friday','Vendredi',$date);
    $date = str_replace('Saturday','Samedi',$date);
    $date = str_replace('Sunday','Dimanche',$date);

    $date = str_replace('January','Janvier',$date);
    $date = str_replace('February','Février',$date);
    $date = str_replace('March','Mars',$date);
    $date = str_replace('April','Avril',$date);
    $date = str_replace('May','Mai',$date);
    $date = str_replace('June','Juin',$date);
    $date = str_replace('July','Juillet',$date);
    $date = str_replace('August','Août',$date);
    $date = str_replace('September','Septembre',$date);
    $date = str_replace('October','Octobre',$date);
    $date = str_replace('November','Novembre',$date);
    $date = str_replace('December','Décembre',$date);

    $date = implode(' ',$date);
    return $date;

}
0
Aominé
$your_date = strtotime("1month", strtotime(date("Y-m-d")));
 $new_date = date("Y-m-d", $your_date++);
0