Foros del Web » Programando para Internet » PHP »

Ayuda con function strftime

Estas en el tema de Ayuda con function strftime en el foro de PHP en Foros del Web. saludos... tengo lo siguiente: $fecha=strftime( "%Y-%m-%d %H:%M:%S:%U", time() ); donde me muestra la fecha del servidor, dado que eso se almacena en una variable, alguien ...
  #1 (permalink)  
Antiguo 17/03/2009, 08:34
 
Fecha de Ingreso: marzo-2009
Mensajes: 15
Antigüedad: 15 años, 1 mes
Puntos: 0
Ayuda con function strftime

saludos...
tengo lo siguiente:

$fecha=strftime( "%Y-%m-%d %H:%M:%S:%U", time() );

donde me muestra la fecha del servidor, dado que eso se almacena en una variable, alguien sabria como hacer una comparacion de la hora del servidor con una columna de bd, llamado ultima_conexion de la tabla usuario ?
se me ha ocurrido hacer una consulta

donde tengo:
$time="SELECT ultima_conexion FROM usuario WHERE idusuario='$idusuario'";
y de ahi me pierdo...!
yaaa.. algo he avanzado.... pero hay otro dilema....

las consultas fueron asi!
y todo el menjunjeeeeeeeeee

$online="SELECT a.idsucursal FROM bodega a, stock_producto b, erp_producto c WHERE c.idproducto=b.idproducto
AND b.idbodega=a.idbodega AND c.idproducto='$id_prod'";
$result_online=dbquery($online);
while ($online_consulta=pg_fetch_array($result_online)){
$idsucursal=$online_consulta["idsucursal"];

if($idsucursal==""){

$consulta_encargado="SELECT a.id_usuario, b.ultima_conexion FROM cfg_encargado_sise a, usuario b WHERE a.idsucursal='$idsucursal' AND a.idsucursal=b.idsucursal AND id_sise='$idsise'";
$resultado_encargado=dbquery($consulta_encargado);
$resultado_online=pg_result($resultado_encargado,0 ,'id_usuario');
}

if($idsucursal!=""){

$consulta_encargado_ctz="SELECT a.id_usuario, a.id_sise, c.ultima_conexion FROM cfg_encargado_sise a, sucursal b, usuario c WHERE b.idsucursal=a.idsucursal AND b.idsucursal='$id_prod' AND a.id_sise='1'";

$resultado_encargado_ctz=dbquery($consulta_encarga do_ctz);
$resultado_online_ctz=pg_result($resultado_encarga do_ctz,0,'id_usuario');
}
}
les explico.... en los if lo que muestro el id del usuario encargado de un sistema,
en el 1: muestra el admin por defecto dependiendo de la sucursal de un producto ...

y el 2: muestra los usuarios encargados en el sistema 1 con su ultima conexion...

la cosa es que ahora con la $fecha debo comparar la ultima conexion del usuario encargado del sistema con la fecha y hora del servidor.... eso!
cualquier cosa.. voi comentando... se que puede ser enredado pero quizas a alguien le pueda servir la idea o el codigo para mas adelante!

PD_ CON la primera consulta $online pude sacar la sucursal de ese producto.... y esa la almacene en un arreglo !

Última edición por Marko_Valpo; 17/03/2009 a las 09:42
  #2 (permalink)  
Antiguo 17/03/2009, 09:42
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Ayuda con function strftime

Primero, qué formato tiene ultima_conexion,
utiliza date() para obtener la fecha-hora, Esta función te devuelve un valor time() en el formato que quieras, lo cual puede ser de ayuda para comparar.
  #3 (permalink)  
Antiguo 17/03/2009, 10:11
 
Fecha de Ingreso: marzo-2009
Mensajes: 15
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con function strftime

.... se me habia olvidado decir que los campos son de tipo timestamp!
muestra en la bd: año-mes-dia: hora:minutos:segundos.milisegundos

ya.. use date
$fecha_servidor = date("Y-m-d h:i:s");
y me arroja la fecha y hora del servidor...

y? ctm... toy chato .. llevo dos dias webiando con esta lesera! .... (fue en mi subconciente) atorao!

Última edición por Marko_Valpo; 17/03/2009 a las 11:31
  #4 (permalink)  
Antiguo 18/03/2009, 01:43
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Ayuda con function strftime

a Date() tambien se le puede pasar como segundo parámetro el timestamp que quieras tratar:
string date ( string $formato [, int $marca_de_tiempo ] )
sólo tienes que comprobar qué formatos reconoce y adaptar el valor de la BBDD a uno compatible con la función.

http://es.php.net/date
  #5 (permalink)  
Antiguo 18/03/2009, 07:54
 
Fecha de Ingreso: marzo-2009
Mensajes: 15
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con function strftime

uhm... ok
tengo una idea de como comprobar aquello....

$fecha_servidor_1 = date("Y-m-d");
$hora_servidor_2 = date("H:i:s");
list($fecha_conexion,$hora_conexion)=explode(' ',$ultima_conexion);

pero despues de eso debo ir comparando si la fecha... e igual a la ultima conexion, y si es igual pasa a otro if... que ve la Hora.. si la hora es igual.. pasa a los minutos y asi susesivamente... pero ahi topo.. toy viendo alguna funcion que haga esa comparacion! entre esas dos variables de servidor y ultima conexion!
  #6 (permalink)  
Antiguo 18/03/2009, 08:38
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Ayuda con function strftime

Ponlo de esta manera:

YYYYMMDDhhmmss

Todo junto y así sólo tienes que realizar una comparación

ejemplo: -> 2009-03-18 15:42:13 pase a: 20090318154213
  #7 (permalink)  
Antiguo 18/03/2009, 09:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 15
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con function strftime

he avanzado.. y me arroja el echo que los dias que han pasado es 0, osea que la ultima conexion del usuario con la del sistema es de 0 dias....
ahora condicionar que si es = 0 dias, siga con las horas de diferencia y si es = seguir con los min...

<?

$fecha_servidor = date('YmdHis');
$annio_serv= date('Y');
$mes_serv= date('m');
$dia_serv= date('d');
$hora_serv= date('H');
$min_serv= date('i');
$seg_serv= date('s');

$ultima_conexion = date('YmdHis');
$annio_conex= date('Y');
$mes_conex= date('m');
$dia_conex= date('d');
$hora_conex= date('H');
$min_conex= date('i');
$seg_conex= date('s');

//calculo timestam de las dos fechas
$fecha1 = mktime(0,0,0,$mes_serv,$dia_serv,$annio_serv);
$fecha2 = mktime(0,0,0,$mes_conex,$dia_conex,$annio_conex);

//resto a una fecha la otra
$segundos_diferencia = $fecha1 - $fecha2;

//convierto segundos en días
$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);

//obtengo el valor absoulto de los días (quito el posible signo negativo)
$dias_diferencia = abs($dias_diferencia);

//quito los decimales a los días de diferencia
$dias_diferencia = floor($dias_diferencia);


echo $dias_diferencia;
?>
  #8 (permalink)  
Antiguo 18/03/2009, 15:06
 
Fecha de Ingreso: marzo-2009
Mensajes: 15
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con function strftime

ya sres.
<?
function usuario_online($ultima_conexion_encargado){

$annio_serv= date('Y');
$mes_serv= date('m');
$dia_serv= date('d');
$hora_serv= date('H');
$min_serv= date('i');
$seg_serv= date('s');

list ($fecha_conex, $hora_conex)=explode(' ' ,$ultima_conexion_encargado);
list($annio_conex,$mes_conex,$dia_conex)= explode('-',$fecha_conex);
list($hora_conex,$basura)= explode('.',$hora_conex);
list($hora_conex,$min_conex,$seg_conex)= explode(':',$hora_conex);


//calculo timestamp de las dos fechas
$fecha1 = mktime($hora_serv, $min_serv, $seg_serv,$mes_serv,$dia_serv,$annio_serv);
$fecha2 = mktime($hora_conex, $min_conex, $seg_conex,$mes_conex,$dia_conex,$annio_conex);

//resto a una fecha la otra
$segundos_diferencia = $fecha1 - $fecha2;

//obtengo el valor absoulto de los días (quito el posible signo negativo)
$segundos_diferencia = abs($segundos_diferencia);

//quito los decimales a los días de diferencia
$segundos_diferencia = floor($segundos_diferencia);

return $segundos_diferencia;

}// cierra funcion
?>

lo que muestra ese codigo es en segundos la diferencia entre el servidor y la fecha del ingreso en bd!
espero que les sirva algun dia!
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 10:24.