web-dev-qa-db-fra.com

Ajouter le nombre de jours à une date

Je veux ajouter le nombre de jours à la date actuelle: J'utilise le code suivant:

$i=30;
echo $date = strtotime(date("Y-m-d", strtotime($date)) . " +".$i."days");

Mais au lieu d’obtenir une date correcte, j’obtiens ceci: 25920

Veuillez suggérer.

116
Pankaj Khurana

Cela devrait être

echo date('Y-m-d', strtotime("+30 days"));

strtotime

s'attend à recevoir une chaîne contenant un format de date en anglais américain et essaiera d'analyser ce format dans un horodatage Unix (le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC), par rapport à l'horodatage indiqué dans now, ou heure actuelle si maintenant n'est pas fourni.

tandis que date

Retourne une chaîne formatée en fonction de la chaîne de format donnée en utilisant l'horodatage entier donné ou l'heure actuelle si aucun horodatage n'est donné.

Voir les pages de manuel pour

et leurs signatures de fonction.

238
Gordon

Celui-ci pourrait être bon

function addDayswithdate($date,$days){

    $date = strtotime("+".$days." days", strtotime($date));
    return  date("Y-m-d", $date);

}
62
Gowri
$date = new DateTime();
$date->modify('+1 week');
print $date->format('Y-m-d H:i:s');

ou print date('Y-m-d H:i:s', mktime(date("H"), date("i"), date("s"), date("m"), date("d") + 7, date("Y"));

46
chx

Vous pouvez aussi ajouter ceci, si vous voulez que la date soit à 5 jours d'une date donnée:

Vous avez une variable avec une date comme celle-ci (obtenue à partir d'une entrée ou d'une base de données ou simplement codée en dur):

$today = "2015-06-15"; // Or can put $today = date ("Y-m-d");

$fiveDays = date ("Y-m-d", strtotime ($today ."+5 days"));

echo $fiveDays; // Will output 2015-06-20
9
Andy
$today=date('d-m-Y');
$next_date= date('d-m-Y', strtotime($today. ' + 90 days'));
echo $next_date;
9
shraddha Dharmamer

N'oubliez pas que le changement d'horloge en raison de l'heure d'été peut vous donner des problèmes lorsque vous ne calculez que les jours.

Voici une petite fonction php qui s'occupe de ça:

function add_days($date, $days) {
    $timeStamp = strtotime(date('Y-m-d',$date));
    $timeStamp+= 24 * 60 * 60 * $days;

    // ...clock change....
    if (date("I",$timeStamp) != date("I",$date)) {
        if (date("I",$date)=="1") { 
            // summer to winter, add an hour
            $timeStamp+= 60 * 60; 
        } else {
            // summer to winter, deduct an hour
            $timeStamp-= 60 * 60;           
        } // if
    } // if
    $cur_dat = mktime(0, 0, 0, 
                      date("n", $timeStamp), 
                      date("j", $timeStamp), 
                      date("Y", $timeStamp)
                     ); 
    return $cur_dat;
}
7
Bjoern

Vous pouvez aussi essayer:

$date->modify("+30 days");

7
Insectatorious

Je sais que c’est une vieille question, mais pour PHP <5.3, vous pouvez essayer ceci:

$date = '05/07/2013';
$add_days = 7;
$date = date('Y-m-d',strtotime($date) + (24*3600*$add_days)); //my preferred method
//or
$date = date('Y-m-d',strtotime($date.' +'.$add_days.' days');
6
Fabrizio

Vous pouvez le faire en manipulant le code temporel ou en utilisant strtotime () . Voici un exemple d'utilisation de strtotime.

$ data ['created'] = date ('Y-m-d H: i: s', strtotime ("+ 1 semaine"));

6
Paul Truesdell

Vous pouvez utiliser strtotime ()
$data['created'] = date('Y-m-d H:m:s', strtotime('+1 week'));

6
Laxman13

Vous pouvez utiliser la classe DateTime construite en PHP. Il a une méthode appelée "add", et son utilisation est décrite de manière détaillée dans le manuel: http://www.php.net/manual/en/datetime.add.php

Il nécessite cependant PHP 5.3.0.

5
mqchen
$date = "04/28/2013 07:30:00";

$dates = explode(" ",$date);

$date = strtotime($dates[0]);

$date = strtotime("+6 days", $date);

echo date('m/d/Y', $date)." ".$dates[1];
5
Mayank Raipure

Vous pouvez essayer ceci.

$i=30;
echo  date("Y-m-d",mktime(0,0,0,date('m'),date('d')+$i,date('Y')));
4
J.Rob

Simple et meilleur

echo date('Y-m-d H:i:s')."\n";
echo "<br>";
echo date('Y-m-d H:i:s', mktime(date('H'),date('i'),date('s'), date('m'),date('d')+30,date('Y')))."\n";

Essaye ça

3
user3767878
//add the two day

$date = "**2-4-2016**"; //stored into date to variable

echo date("d-m-Y",strtotime($date.**' +2 days'**));

//print output
**4-4-2016**
3
Sajan Patel

Utilisez cette fonction addDate () pour ajouter ou soustraire des jours, des mois ou des années (vous aurez également besoin de la fonction auxiliaire reformatDate ()).

/**
 * $date self explanatory
 * $diff the difference to add or subtract: e.g. '2 days' or '-1 month'
 * $format the format for $date
 **/
    function addDate($date = '', $diff = '', $format = "d/m/Y") {
        if (empty($date) || empty($diff))
            return false;
        $formatedDate = reformatDate($date, $format, $to_format = 'Y-m-d H:i:s');
        $newdate = strtotime($diff, strtotime($formatedDate));
        return date($format, $newdate);
    }
    //Aux function
    function reformatDate($date, $from_format = 'd/m/Y', $to_format = 'Y-m-d') {
        $date_aux = date_create_from_format($from_format, $date);
        return date_format($date_aux,$to_format);
    }

Note: seulement pour php> = 5.

2
Juancho Ramone

Même s’il s’agit d’une question ancienne, cette façon de faire prendrait de nombreuses situations et semble être robuste. Vous devez disposer de PHP 5.3.0 ou version ultérieure.

$EndDateTime = DateTime::createFromFormat('d/m/Y', "16/07/2017");
$EndDateTime->modify('+6 days');
echo $EndDateTime->format('d/m/Y');

Vous pouvez avoir n'importe quel type de format pour la chaîne de date et cela fonctionnerait.

1
Deepak Daniel

Utilisez le code suivant.

<?php echo date('Y-m-d', strtotime(' + 5 days')); ?>

Référence a trouvé à partir d'ici - Comment ajouter des jours à la date actuelle en PHP

1
JoyGuru
//Set time zone
date_default_timezone_set("asia/kolkata");
$pastdate='2016-07-20';
$addYear=1;
$addMonth=3;
$addWeek=2;
$addDays=5;
$newdate=date('Y-m-d', strtotime($pastdate.' +'.$addYear.' years +'.$addMonth. ' months +'.$addWeek.' weeks +'.$addDays.' days'));
echo $newdate;