La façon la plus simple d'incrémenter une date en PHP?

Dire que j'ai une chaîne de venir dans, "2007-02-28", Quel est le code le plus simple que je puisse écrire pour le transformer en "2007-03-01"? Droit maintenant, je suis juste en utilisant strtotime(), puis en ajoutant 24*60*60, puis en utilisant date(), mais je me demande s'il y a une façon plus propre, plus simple, ou plus intelligente de le faire.

36
demandé sur 웃웃웃웃웃 2009-03-19 02:34:13

8 réponses

proprement utiliser strtotime()

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

vous donnera le 2007-03-01

75
répondu Ólafur Waage 2009-03-18 23:41:39

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

Le high-tech est de faire:

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

mais cela n'en vaut vraiment la peine que si vous faites, disons, une séquence de transformations sur la date, plutôt que de simplement trouver demain.

30
répondu chaos 2009-03-18 23:35:06

Vous pouvez faire l'addition directement dans strtotime, par exemple

 $today="2007-02-28";
 $nextday=strftime("%Y-%m-%d", strtotime("$today +1 day"));
17
répondu Paul Dixon 2009-03-19 00:06:41

une autre façon est d'utiliser la fonction mktime(). Il est très utile à la fonction...

$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() le mieux dans cette situation...

6
répondu Bajlo 2012-01-03 13:53:58

la façon La plus simple...

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

OU d'une date spécifique...

echo date('Y-m-d',strtotime("+1 day", strtotime('2007-02-28')));
5
répondu Biswadeep Sarkar 2015-01-18 15:20:34

Bonjour, vous pouvez essayer ce 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
répondu Aominé 2017-07-18 21:11:04
$your_date = strtotime("1month", strtotime(date("Y-m-d")));
 $new_date = date("Y-m-d", $your_date++);
0
répondu Eatsleeprace Livelife 2017-10-20 01:03:25
 $early_start_date = date2sql($_POST['early_leave_date']);


        $date = new DateTime($early_start_date);
        $date->modify('+1 day');


        $date_a = new DateTime($early_start_date . ' ' . $_POST['start_hr'] . ':' . $_POST['start_mm']);
        $date_b = new DateTime($date->format('Y-m-d') . ' ' . $_POST['end_hr'] . ':' . $_POST['end_mm']);

        $interval = date_diff($date_a, $date_b);
-1
répondu radhason power 2017-04-04 09:09:00