sumar - Agregar días a $ Date en PHP
strtotime php (9)
Aquí está la solución más simple para su consulta
$date=date_create("2013-03-15");//or your date string
date_add($date,date_interval_create_from_date_string("40 days"));//add number of days
echo date_format($date,"Y-m-d");//set date format of the result
Tengo una fecha devuelta como parte de una consulta mySQL en el formulario 2010-09-17
Me gustaría establecer las variables $ Date2 a $ Date5 de la siguiente manera:
$Date2 = $Date + 1
$Date3 = $Date + 2
etc.
para que vuelva el 2010-09-18
, 2010-09-19
, etc.
Yo he tratado
date(''Y-m-d'', strtotime($Date. '' + 1 day''))
pero esto me da la fecha ANTES de $Date
.
¿Cuál es la forma correcta de obtener mis Fechas en el formato ''Ymd'' para que puedan usarse en otra consulta?
Aquí hay un pequeño fragmento para demostrar las modificaciones de fecha:
$date = date("Y-m-d");
//increment 2 days
$mod_date = strtotime($date."+ 2 days");
echo date("Y-m-d",$mod_date) . "/n";
//decrement 2 days
$mod_date = strtotime($date."- 2 days");
echo date("Y-m-d",$mod_date) . "/n";
//increment 1 month
$mod_date = strtotime($date."+ 1 months");
echo date("Y-m-d",$mod_date) . "/n";
//increment 1 year
$mod_date = strtotime($date."+ 1 years");
echo date("Y-m-d",$mod_date) . "/n";
Aquí tiene una manera fácil de resolver esto.
<?php
$date = "2015-11-17";
echo date(''Y-m-d'', strtotime($date. '' + 5 days''));
?>
La salida será:
2015-11-22
La solución ha encontrado desde aquí - Cómo agregar días hasta la fecha en PHP
Desde PHP 5.2 puedes usar modificar con un objeto DateTime:
http://php.net/manual/en/datetime.modify.php
$Date1 = ''2010-09-17'';
$date = new DateTime($Date1);
$date->modify(''+1 day'');
$Date2 = $date->format(''Y-m-d'');
Tenga cuidado al agregar meses ... (y en menor medida, años)
Si está utilizando PHP 5.3, puede usar un objeto DateTime
y su método add
:
$Date1 = ''2010-09-17'';
$date = new DateTime($Date1);
$date->add(new DateInterval(''P1D'')); // P1D means a period of 1 day
$Date2 = $date->format(''Y-m-d'');
Eche un vistazo a la página del manual del constructor de DateInterval
para ver cómo construir otros períodos para agregar a su fecha (2 días serían ''P2D''
, 3 serían ''P3D''
, y así sucesivamente).
Sin PHP 5.3, debería poder usar strtotime
la forma en que lo hizo (lo he probado y funciona tanto en 5.1.6 como en 5.2.10):
$Date1 = ''2010-09-17'';
$Date2 = date(''Y-m-d'', strtotime($Date1 . " + 1 day"));
// var_dump($Date2) returns "2010-09-18"
También puedes usar el siguiente formato
strtotime("-3 days", time());
strtotime("+1 day", strtotime($date));
Puedes apilar cambios de esta manera:
strtotime("+1 day", strtotime("+1 year", strtotime($date)));
Tenga en cuenta la diferencia entre este enfoque y el de otras respuestas: en lugar de concatenar los valores +1 day
y <timestamp>
, puede pasar la marca de tiempo como el segundo parámetro de strtotime
.
Todo lo que tienes que hacer es usar days
lugar de day
así:
<?php
$Date = "2010-09-17";
echo date(''Y-m-d'', strtotime($Date. '' + 1 days''));
echo date(''Y-m-d'', strtotime($Date. '' + 2 days''));
?>
Y produce correctamente:
2010-09-18
2010-09-19
Todos tienen que usar el código de abajo:
$nday = time() + ( 24 * 60 * 60);
echo ''Now: ''. date(''Y-m-d'') ."/n";
echo ''Next Day: ''. date(''Y-m-d'', $nday) ."/n";
Usando una variable por Número de días
$myDate = "2014-01-16";
$nDays = 16;
$newDate = strtotime($myDate . ''+ ''.$nDays.''days'');
echo newDate(''d/m/Y'', $soma); //format new date