2009-05-06 11 views
23

Dans mon code PHP, j'ai une date dans ma variable "$ postedDate".
Maintenant, je veux obtenir la date après 7 jours, 15 jours, un mois et 2 mois se sont écoulés.Comment puis-je obtenir une date après 15 jours/1 mois en PHP?

Quelle fonction de date dois-je utiliser?

Le format de date de sortie doit être au format américain.

+2

Le terme que vous voulez Google pour est "arithmétique date". –

Répondre

17

essayer cette

$date = date("Y-m-d");// current date 

$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +2 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +30 days"); 
2

Quel est le format d'entrée de toute façon?

1) Si votre date est, disons, tableau de l'année, du mois et du jour, alors vous pouvez mktime (0, 0, 0, $ mois, $ jour + 15, $ année) ou mktime (0, 0, 0, $ mois + 1, $ jour, $ année). Notez que mktime est une fonction intelligente, qui gérera correctement les valeurs hors limites, donc mktime (0, 0, 0, 13, 33, 2008) (qui est le mois 13, jour 33 de 2008) retournera l'horodatage de février , 2, 2009.

2) Si votre date est un horodatage, alors vous ajoutez juste, comme, 15 * SECONDS_IN_A_DAY, et puis la sortie avec la date (/ * n'importe quel format * /, $ postedDate). Si vous avez besoin d'ajouter un mois, 30 jours ne fonctionnera pas toujours correctement, donc vous pouvez d'abord convertir l'horodatage en mois, jour et année (avec la fonction date()), puis utiliser (1).

3) Si votre date est une chaîne, vous devez d'abord l'analyser, par exemple, avec strtotime(), puis faire ce que vous voulez.

13

Depuis PHP 5.2.0 build la DateTime en classe est disponible

$date = new DateTime($postedDate); 

$date->modify('+1 day'); 

echo $date->format('Y-m-d'); 

http://php.net/manual/en/class.datetime.php

+0

Merci beaucoup. Il résout mon problème en quelques secondes. merci encore –

+0

Je préfère toujours cette solution à l'option 'strtotime'. – Peon

3

Ceci est très simple; essayez ceci:

$date = "2013-06-12"; // date you want to upgade 

echo $date = date("Y-m-d", strtotime($date ." +1 day")); 
9
$date=strtotime(date('Y-m-d')); // if today :2013-05-23 

$newDate = date('Y-m-d',strtotime('+15 days',$date)); 

echo $newDate; //after15 days :2013-06-07 

$newDate = date('Y-m-d',strtotime('+1 month',$date)); 

echo $newDate; // after 1 month :2013-06-23 
Questions connexes