Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Calcular difernecia entre dos fechas sacadas de la base de datos

Estas en el tema de Calcular difernecia entre dos fechas sacadas de la base de datos en el foro de PHP en Foros del Web. Bunas, Estoy creando un sistema de reservas y tengo los campos fchEntrada y fchSalida en la tabla tblcarrito de mi base de datos. Quiero lograr ...
  #1 (permalink)  
Antiguo 04/04/2013, 06:28
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 1
Pregunta Calcular difernecia entre dos fechas sacadas de la base de datos

Bunas,

Estoy creando un sistema de reservas y tengo los campos fchEntrada y fchSalida en la tabla tblcarrito de mi base de datos.

Quiero lograr que la función que me calcula la diferencia entre las dos fechas me calcule pero no mediante fechas introducidas manualmente en el código, lo que quiero hacer es calcular la diferencia entre las dos fechas introducidas en la base de datos:

Esta es la consulta que hago para sacar los datos de la tbl carroto llamada DatosCarrito:

mysql_select_db($database_conexionqamrila, $conexionqamrila);
$query_DatosCarrito = sprintf("SELECT * FROM tblcarrito WHERE tblcarrito.idUsuario = %s AND tblcarrito.intTransaccionEfectuada = 0", GetSQLValueString($varUsuario_DatosCarrito, "int"));
$DatosCarrito = mysql_query($query_DatosCarrito, $conexionqamrila) or die(mysql_error());
$row_DatosCarrito = mysql_fetch_assoc($DatosCarrito);
$totalRows_DatosCarrito = mysql_num_rows($DatosCarrito);


Y la función que calcula la diferencia es la siguiente:

function dias_transcurridos($fecha_i,$fecha_f)
{


$dias = (strtotime($fecha_i)-strtotime($fecha_f))/86400;
$dias = abs($dias); $dias = floor($dias);
return $dias;

}

Y saco el resultado mediante un echo:

<?php echo dias_transcurridos('2013-01-01','2013-01-10') ?>

y la salida es 9, por tanto funciona correctamente, pero yo quiero coger los valores de dichas fechas de la base de datos y e probado con esto:

<?php echo dias_transcurridos($row_DatosCarrito['fchEntrada'],$row_DatosCarrito['fchSalida']) ?>
pero no estoy seguro de que sea correcto y de todas formas la salida da siempre 0, me podéis ayudar?

Muchas gracias!!
  #2 (permalink)  
Antiguo 04/04/2013, 06:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Calcular difernecia entre dos fechas sacadas de la base de datos

Datetime functions MySql puedes calcularlo directamente en mysql

SELECT *, DATEDIFF(fchSalida,fchEntrada) dias FROM tblcarrito WHERE tblcarrito.idUsuario = %s AND tblcarrito.intTransaccionEfectuada = 0


Haz echo $row_DatosCarrito['fchEntrada']; para ver si tienes los datos....

(raro pero esa query podria dar mas de un registro...)

Datetime functions PHP puedes usar funciones predefinidas
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 04/04/2013 a las 07:09
  #3 (permalink)  
Antiguo 04/04/2013, 12:51
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 1
Respuesta: Calcular difernecia entre dos fechas sacadas de la base de datos

Muchas gracias por tu respuesta Quim, me miro como funcionan estas funciones de datetime e intentare hacerlo.
  #4 (permalink)  
Antiguo 06/04/2013, 08:20
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años
Puntos: 1
Respuesta: Calcular difernecia entre dos fechas sacadas de la base de datos

Solucionado:

-Consulta:

$query_DatosCarrito = sprintf("SELECT *, DATEDIFF(fchSalida, fchEntrada) AS diferencia FROM tblcarrito WHERE tblcarrito.idUsuario = %s AND tblcarrito.intTransaccionEfectuada = 0", GetSQLValueString($varUsuario_DatosCarrito, "int"));

-Y se muestra la diferencia con un echo:

<?php echo $row_DatosCarrito['diferencia']; ?>

Etiquetas: campo, mysql, select, sql, tabla
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 08:12.