formato - strftime php
Agregar tres meses a una fecha en PHP (9)
Tengo una variable llamada $effectiveDate
contiene la fecha 2012-03-26 .
Estoy intentando agregar tres meses hasta la fecha y no he tenido éxito.
Esto es lo que he intentado:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));
y
$effectiveDate = strtotime(date("Y-m-d", strtotime($effectiveDate)) . "+3 months");
¿Qué estoy haciendo mal? Ninguna pieza de código funcionó.
Cambiarlo a esto le dará el formato esperado:
$effectiveDate = date(''Y-m-d'', strtotime("+3 months", strtotime($effectiveDate)));
Esta respuesta no es exactamente a esta pregunta. Pero agregaré esto ya que esta pregunta aún se puede buscar para agregar / deducir el período de la fecha.
$date = new DateTime(''now'');
$date->modify(''+3 month''); // or you can use ''-90 day'' for deduct
$date = $date->format(''Y-m-d h:i:s'');
echo $date;
Lo siguiente debería funcionar
$d = strtotime("+1 months",strtotime("2015-05-25"));
echo date("Y-m-d",$d); // This will print **2015-06-25**
Lo siguiente debería funcionar, pero es posible que deba cambiar el formato:
echo date(''l F jS, Y (m-d-Y)'', strtotime(''+3 months'', strtotime($DateToAdjust)));
Lo siguiente debería funcionar, por favor intente esto:
$effectiveDate = strtotime("+1 months", strtotime(date("y-m-d")));
echo $time = date("y/m/d", $effectiveDate);
Necesita convertir la fecha en un valor legible. Puede usar strftime () o date ().
Prueba esto:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));
$effectiveDate = strftime ( ''%Y-%m-%d'' , $effectiveDate );
echo $effectiveDate;
Esto debería funcionar. Me gusta usar strftime mejor, ya que se puede utilizar para la localización, es posible que desee probarlo.
Puede usar la clase simpleFecha desde PHP Simple Libraries:
include(''../code/simpleDate.php'');
$date = new simpleDate();
echo $date->set($effectiveDate)->addMonth(3)->get();
Consulte los tutoriales de la biblioteca aquí .
Supongo que por "no funcionó" quiere decir que le está dando una marca de tiempo en lugar de la fecha formateada, porque lo estaba haciendo correctamente:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); // returns timestamp
echo date(''Y-m-d'',$effectiveDate); // formatted version
respuesta puede ser un poco menos detallada al concatenar el argumento de strtotime () de la siguiente manera:
$effectiveDate = date(''Y-m-d'', strtotime($effectiveDate . "+3 months") );
(Esto depende de los detalles de la implementación mágica, pero siempre puedes echarles un vistazo si desconfías con razón).