Foros del Web » Programando para Internet » PHP »

Error en diferencia de fechas

Estas en el tema de Error en diferencia de fechas en el foro de PHP en Foros del Web. Hola, buenos días Tengo un problema al intentar obtener la diferencia entre dos fechas. Uno de los valores lo obtengo de una base de datos ...
  #1 (permalink)  
Antiguo 25/01/2018, 10:13
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 18 años, 11 meses
Puntos: 27
Error en diferencia de fechas

Hola, buenos días

Tengo un problema al intentar obtener la diferencia entre dos fechas. Uno de los valores lo obtengo de una base de datos $rowSelectMyAgend['shd_dia'] y el otro de la fecha actual date('Y-m-d');

Sin embargo, cuando ejecuto la función me marca el siguiente error:

Código PHP:
Warningdate_diff() expects parameter 1 to be DateTimeInterfacestring given in on line 26 
siendo mi código:

Código PHP:
$today date('Y-m-d');
$date date_format(new DateTime($today), 'Y-m-d');
$eventdate date_format(new DateTime($rowSelectMyAgend['shd_dia']), 'Y-m-d');
$diff date_diff($eventdate$date);
echo 
$date ' <br>' $eventdate
Leyendo el manual de PHP, menciona que hay que formatear las fechas con new DateTime(), por ello es que lo apliqué a ambas fechas. Ya comprobé que valores me arrojan cada una de ellas y los veo correctos:

Código PHP:
2018-01-25 
2018
-05-03 
Sin embargo, aún no sé porque me marca el error antes citado.

¿Alguna idea?

De antemano gracias y que pasen un excelente día!
Saludos!
  #2 (permalink)  
Antiguo 25/01/2018, 11:30
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Error en diferencia de fechas

El error te lo esta diciendo: estas pasando un cadena en lugar de un objeto DateTime, eso se debe a que le das formato a la fecha antes de hacer la diferencia entre ellas.

Para solucionar solo tienes que hacer algunos cambios minimos:
Código PHP:
Ver original
  1. $today = new DateTime();
  2. $date = DateTime::createFromFormat('Y-m-d', $rowSelectMyAgend['shd_dia']);
  3. $diff = $today->diff($date);
  4. print_r($diff->format('%a días'));
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 26/01/2018, 09:31
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 18 años, 11 meses
Puntos: 27
Respuesta: Error en diferencia de fechas

Entiendo... pensé que debía tener formateadas ambas fechas de igual manera antes de sacar la diferencia entre estas :O

Con la forma en que lo mostraste ya está funcionando hhs, te agradezco por tu tiempo!

Etiquetas: diferencia, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:43.