2009-12-17 11 views
11

De nombreux exemples concernent l'ajout de jours à ce jour. Mais comment le faire, si j'ai différents jour de starding?Ajout de jours à un jour spécifique

Par exemple (ne fonctionne pas):

$day='2010-01-23'; 

// add 7 days to the date above 
$NewDate= Date('$day', strtotime("+7 days")); 
echo $NewDate; 

Exemple précédent ne fonctionne pas. Comment devrais-je changer le jour d'affichage en mettant quelque chose d'autre à la place de Date?

+2

est '$ jour' une faute de frappe? vous n'emballez pas les variables entre guillemets. – TravisO

Répondre

29

Pour une solution très simple basé sur votre code:

$day='2010-01-23'; 

// add 7 days to the date above 
$NewDate = date('Y-m-d', strtotime($day . " +7 days")); 
echo $NewDate; 

Si vous utilisez PHP 5.3+, vous pouvez utiliser la nouvelle DateTime libs qui sont très pratiques:

$day = '2010-01-23'; 

// add 7 days to the date above 
$NewDate = new DateTime($day); 
$NewDate->add(new DateInterval('P7D'); 
echo $NewDate->format('Y-m-d'); 

J'ai complètement changé pour utiliser DateTime moi-même maintenant car c'est très puissant. Vous pouvez également spécifier le fuseau horaire facilement lors de l'instanciation, c'est-à-dire new DateTime($time, new DateTimeZone('UTC')). Vous pouvez utiliser les méthodes add() et sub() pour modifier la date avec des objets DateInterval. Voici la documentation:

+0

$ NewDate-> add (new DateInterval ('P7D'); - vous devez ajouter un '' 'à la fin ici :) – mmvsbg

1

De php.com binupillai2003

<?php 
/* 
Add day/week/month to a particular date 
@param1 yyyy-mm-dd 
@param1 integer 
by Binu V Pillai on 2009-12-17 
*/ 

function addDate($date,$day)//add days 
{ 
$sum = strtotime(date("Y-m-d", strtotime("$date")) . " +$day days"); 
$dateTo=date('Y-m-d',$sum); 
return $dateTo; 
} 

?> 
+2

Alors que "$ date" peut techniquement fonctionner, c'est une mauvaise syntaxe, il suffit de dire $ date – TravisO

9
$NewDate = date('Y-m-d', strtotime('+7 days', strtotime($day))); 
+3

Cela ne sortira que quelques secondes depuis l'époque unix. –

Questions connexes