36 votos

Forma más sencilla de incrementar una fecha en PHP?

Decir que tengo una cadena que viene en, "2007-02-28", ¿cuál es el código más sencillo que yo podía escribir a su vez que en "2007-03-01"? Ahora mismo estoy usando strtotime(), agregando 24*60*60, entonces el uso de date(), pero me preguntaba si hay un lugar más limpio, más sencillo, o más inteligente manera de hacerlo.

75voto

Ólafur Waage Puntos 40104

Una manera limpia es para uso strtotime()

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

Le dará la 2007-03-01

30voto

chaos Puntos 69029

Es más limpio y más fácil de agregar 86400. :)

La forma de alta tecnología es hacer:

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

pero que en realidad sólo de forma remota vale la pena si usted está haciendo, por ejemplo, una secuencia de transformaciones en la fecha en que, en lugar de simplemente encontrar el día de mañana.

17voto

Paul Dixon Puntos 122033

Usted puede hacer la adición a la derecha dentro de strtotime, por ejemplo,

 $today="2007-02-28";
 $nextday=strftime("%Y-%m-%d", strtotime("$today +1 day"));

6voto

Bajlo Puntos 190

Otro método es utilizar la función la función mktime(). Es muy útil la función de...

$date = "2007-02-28";
list($y,$m,$d)=explode('-',$date);
$date2 = Date("Y-m-d", mktime(0,0,0,$m,$d+1,$y));

pero creo strtotime() es mejor en esa situación...

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X