Estoy tratando de obtener una fecha que sea un año a partir de la fecha que especifique.
Mi código se ve así:
$futureDate=date('Y-m-d', strtotime('+one year', $startDate));
Está devolviendo la fecha incorrecta. ¿Alguna idea de por qué?
Mate
Estoy tratando de obtener una fecha que sea un año a partir de la fecha que especifique.
Mi código se ve así:
$futureDate=date('Y-m-d', strtotime('+one year', $startDate));
Está devolviendo la fecha incorrecta. ¿Alguna idea de por qué?
Misho
$futureDate=date('Y-m-d', strtotime('+1 year'));
¡$futureDate es dentro de un año!
$futureDate=date('Y-m-d', strtotime('+1 year', strtotime($startDate)) );
¡$futureDate es un año desde $startDate!
Tenga en cuenta que si $startDate ya es una marca de tiempo (como una creada anteriormente con la función time() o mktime()) y no una cadena, no debe incluirla en strtotime o no funcionará. En cambio, haz $futureDate=date('Y-m-d',strtotime('+1 year',$startDate));
como K Prime mencionado a continuación.
– dallin
4 de septiembre de 2018 a las 4:11
nidhin bebe
Para agregar un año a la fecha de hoy, use lo siguiente:
$oneYearOn = date('Y-m-d',strtotime(date("Y-m-d", mktime()) . " + 365 day"));
Para los otros ejemplos, debe inicializar $StartingDate con un valor de marca de tiempo, por ejemplo:
$StartingDate = mktime(); // todays date as a timestamp
Prueba esto
$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 365 day"));
o
$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 1 year"));
Agregar “+365” en lugar de “+1 año” lo hizo. ¡Gracias!
– Mate
15 de diciembre de 2009 a las 16:01
¿No se rompería esto en caso de año bisiesto?
– WhoaItsAFactorial
25 de enero de 2013 a las 15:46
A partir de PHP 5.1, cuando se llama sin argumentos, mktime() arroja un aviso E_STRICT: use la función time() en su lugar.
– svandragt
29 de enero de 2014 a las 13:54
Downvoted aquí también. El número de segundos en un día, días en un año, segundos en un año, etc. son todos variables. Si está interesado en ‘dentro de un año’, debe pasar en un intervalo de ‘un año’. Subdividir por su cuenta es lo que conduce a errores en torno a los días bisiestos, los segundos bisiestos y los cambios de horario de verano. Peor aún, provoca pruebas unitarias de flappy.
– droberto
15/08/2014 a las 18:10
¿Por qué mi respuesta está negativa? $añadidounaño=fecha(“y”)+1; // para agregar un año, ¿qué tiene de malo?
– pate.kiran
11 de mayo de 2015 a las 9:47
//1 year from today's date
echo date('d-m-Y', strtotime('+1 year'));
//1 year from from specific date
echo date('22-09-Y', strtotime('+1 year'));
Espero que este código más simple ayude a alguien en el futuro 🙂
Probar: $futureDate=date('Y-m-d',strtotime('+1 year',$startDate));
jardinero
acabo de tener el mismo problema, sin embargo, esta fue la solución más simple:
<?php (date('Y')+1).date('-m-d'); ?>
Genial, lo uso para obtener el próximo año: $next_year = (date('Y')+1)
.
– Martín
14 oct 2017 a las 16:09
anarquíafuera de la ley
// Declare a variable for this year
$this_year = date("Y");
// Add 1 to the variable
$next_year = $this_year + 1;
$year_after = $this_year + 2;
// Check your code
echo "This year is ";
echo $this_year;
echo "<br />";
echo "Next year is ";
echo $next_year;
echo "<br />";
echo "The year after that is ";
echo $year_after;
Genial, lo uso para obtener el próximo año: $next_year = (date('Y')+1)
.
– Martín
14 oct 2017 a las 16:09
Prefiero el enfoque OO:
$date = new \DateTimeImmutable('today'); //'today' gives midnight, leave blank for current time.
$futureDate = $date->add(\DateInterval::createFromDateString('+1 Year'))
Usar DateTimeImmutable
de lo contrario, también modificará la fecha original. más sobre DateTimeImmutable: http://php.net/manual/en/class.datetimeimmutable.php
Si solo desea a partir de la fecha de hoy, siempre puede hacer:
new \DateTimeImmutable('-1 Month');
Se olvidó de informar sobre el error.
– BalusC
15 de diciembre de 2009 a las 3:49
Frank Farmer: ¿estás tan seguro? Preferiría esperar las rectificaciones/comentarios de OP.
– BalusC
15 de diciembre de 2009 a las 4:12
En mi prisa por publicar esto anoche, olvidé aclarar: estaba devolviendo la fecha incorrecta. ¡Lo siento! Gracias por tu ayuda.
– Mate
15 de diciembre de 2009 a las 16:05
Úselo así en su lugar strtotime(‘+1 año’, $startDate));
– casivaagustin
14 de julio de 2015 a las 14:49