Esto es lo que estoy tratando de conseguir. alguien contrató un artículo el 2018-09-09 durante 45 días. ¿Cómo convertiré estos 45 días a la fecha y hora más cercana a partir de la fecha de compra (2018-09-09)?

Es decir, necesito obtener la fecha y hora de 45 días con 09/09/2018 como punto de partida. ¿Es esto obtenible? Esto es lo que he intentado

$today = '2018-09-09';

$days = 45;
$year = 2018;
echo date('Y-m-d', mktime( 0, 0, 0, 1, $days, $year)); 
php
1
chinazaike 10 sep. 2018 a las 00:36

3 respuestas

La mejor respuesta

Si desea agregar una cantidad de días predefinida a una fecha específica (que es como interpreté la pregunta), entonces puede considerar usar la clase DateTime con sus métodos asociados, por ejemplo:

$now = new DateTime('2018-09-09');

/* http://www.php.net/manual/en/class.dateinterval.php */
$period = new DateInterval('P45D');

/* http://www.php.net/manual/en/datetime.add.php */
$future = $now->add( $period );

echo $future->format('y-m-d');

Imprimirá:

18-10-24
1
RamRaider 9 sep. 2018 a las 21:45

Así

echo (new DateTime('2018-09-09'))->modify('+45 days')->format('Y-m-d');

Salida

2018-10-24

Sandbox

2
ArtisticPhoenix 9 sep. 2018 a las 21:46

Use Datetime y Dateinterval:

$today = '2018-09-09';
$datetime = new DateTime($today);
$dateinterval = new DateInterval('P45D');
$datetime->add($dateinterval);
echo $datetime->format('Y-m-d');
0
EvE 9 sep. 2018 a las 21:47