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.
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.
Celui-ci pourrait être bon
function addDayswithdate($date,$days){
$date = strtotime("+".$days." days", strtotime($date));
return date("Y-m-d", $date);
}
$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"));
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
$today=date('d-m-Y');
$next_date= date('d-m-Y', strtotime($today. ' + 90 days'));
echo $next_date;
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;
}
Vous pouvez aussi essayer:
$date->modify("+30 days");
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');
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"));
Vous pouvez utiliser strtotime ()$data['created'] = date('Y-m-d H:m:s', strtotime('+1 week'));
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.
$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];
Vous pouvez essayer ceci.
$i=30;
echo date("Y-m-d",mktime(0,0,0,date('m'),date('d')+$i,date('Y')));
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
//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**
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.
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.
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
//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;