Sacar la diferencia entre dos fechas ?

Iniciado por Rebeca, Septiembre 08, 2021, 07:47:18 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hola a todos tengo almacenado en mi base de datos mysql, la fecha de inicio de una publicación, lo que necesito ver es la cantidad de días  que le quedan de la fecha de publicación a la fecha de hoy .

Necesitaría sacar la diferencia entre la fecha almacenada y la fecha actual.
no me sale ..
dejo código:

Código: php
$fecha1= new DateTime("now");
$fecha2= new DateTime($FechaINI);///$FechaINI es la que traigo de la base de datos y esta guardada como "datatime"
$diff = $fecha1->diff($fecha2);


echo $diff->days . ' dias';


Muchas gracias de antemano, saludos a todos.!!!
Rebe

@Rebeca

No parece que hubiera un error sintáctico, pero deberías ver qué valor hace referencia la variable $FechaINI.

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Hola Gracias por responder, FechaIINI, viene de la base de datos , y esta almacenada como DATATIME,

no se porque no me hace la comparación  :(

Saludos Cordiales
Rebe

Hola dejo mejor explicado el código

tengo en mi base de datos el campo  $ClFechaINI =$reg['ClFechaINI']; // esta almacenado como datatime

quiero obtener la cantidad de días que hay entre ClFechaINI con la fecha actual. he probado muchos ejemplos y me salta error.

Fatal error: Uncaught TypeError: date_diff(): Argument #1 ($baseObject) must be of type DateTimeInterface, bool given in C:\xampp\htdocs
el código es el siguiente:

Código: php
$datetime1 = date_create('$ClFechaINI)');
$datetime2 = new DateTime("now");
$interval = date_diff($datetime1, $datetime2); // aca marca el error.
echo $interval->format('%R%a días');





Espero que se entienda, muchas gracias por ayudar.
Saludos

Has probado ha hacer el cálculo en la base de datos? Devolviendo los días es llamando a DATEDIFF ( datepart , startdate , enddate ) por ejemplo SELECT DATEDIFF(day, startDate, endDate) AS 'Duration' 
    FROM dbo.Duration;

Espero que te sirva.

Hola Gracias por responder, estoy  haciendo pruebas y no hay caso.. 
se que el error es un parámetro mal puesto pero me fijo en los ejemplos y ninguno sale como es.. o yo no lo entiendo ..



Que estaría faltando?

Desde la documentación de MariaDB:

CitarDATEDIFF() returns (expr1 – expr2) expressed as a value in days from one date to the other. expr1 and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.

Sintaxis: DATEDIFF(expr1,expr2)

Esa sintaxis la recuerdo de Microsoft SQL Server, pero no de MySQL/MariaDB. Recuerda además que debes colocar fechas válidas, como por ejemplo:

Código: php
SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');


Fuentes:

*.- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Hola gracias por responder, entiendo lo de fechas validas, lo que quiero es usar mi base de datos.. si no tendría sentido que yo pusiera  a mano los días

Me voy a ver algún video de yutube... por hay.. encuentro algo..

Se agradece toda la información.

Saludos !!