Foros del Web » Programando para Internet » PHP »

Problema con function php

Estas en el tema de Problema con function php en el foro de PHP en Foros del Web. Buenas tengo una función en php y en ella quiero que me de una fecha de la base de datos la funcion es esta: @import ...
  #1 (permalink)  
Antiguo 03/03/2012, 04:55
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Problema con function php

Buenas
tengo una función en php y en ella quiero que me de una fecha de la base de datos la funcion es esta:
Código PHP:
Ver original
  1. <?php
  2. include('config.php');
  3. date_default_timezone_set('Europe/Madrid');
  4. $horas=mysql_query("SELECT * from perfil",$conexion);
  5. $fechas=(mysql_fetch_array($horas));
  6. $fecha=$fechas['fecha'];
  7. $fechas1=strtotime(date($fecha));
  8.  
  9. function hace($fechas1){
  10.         //obtener la hora en formato unix
  11.         $ahora=time();
  12.        
  13.         //obtener la diferencia de segundos
  14.         $segundos=$ahora-$fechas1;
  15.        
  16.         //dias es la division de n segs entre 86400 segundos que representa un dia;
  17.         $dias=floor($segundos/86400);
  18.        
  19.         //semanas division de dias en 7
  20.         $semanas=floor($dias/7);
  21.  
  22.         //mod_hora es el sobrante, en horas, de la division de días;    
  23.         $mod_hora=$segundos%86400;
  24.        
  25.         //hora es la division entre el sobrante de horas y 3600 segundos que representa una hora;
  26.         $horas=floor($mod_hora/3600);
  27.        
  28.         //mod_minuto es el sobrante, en minutos, de la division de horas;      
  29.         $mod_minuto=$mod_hora%3600;
  30.        
  31.         //minuto es la division entre el sobrante y 60 segundos que representa un minuto;
  32.         $minutos=floor($mod_minuto/60);
  33.        
  34.         if($horas<=0){
  35.                 echo $minutos.' minutos';
  36.         }elseif($dias<=0){
  37.                 echo $horas.' horas ';
  38.         }elseif($dias<=15){
  39.                 echo $dias.' dias ';
  40.         }
  41.         elseif(($dias>15) && ($dias<=20))
  42.         {echo 'Hace más de 2 semanas.';}
  43.         else
  44.         {echo $fecha.'fecha';}
  45.        
  46.        
  47.     }
  48. echo hace($fechas1);
este ultimo else no me devuelve nada nose porque no me funciona si lo imprimo fuera de la function si funciona pero al meterlo dentro ya no me devuelve nada... nose como lo pueso solucionar, me dais una idea?? gracias un saludo.
  #2 (permalink)  
Antiguo 03/03/2012, 06:55
Avatar de cyberneticos  
Fecha de Ingreso: febrero-2007
Ubicación: Pto Sta Mra, Cádiz
Mensajes: 223
Antigüedad: 17 años, 2 meses
Puntos: 3
Respuesta: Problema con function php

Hola,

Para ayudarte, sería interesante ver algunos records de la base de datos:

$horas=mysql_query("SELECT * from perfil",$conexion);
$fechas=(mysql_fetch_array($horas));
$fecha=$fechas['fecha'];



A la variable $fechas , le estas asignando el puntero 'fechas' que coincida con uno de los resultados. Si hay más de un resultado, $fechas puede ser un array, no un string, por lo tanto haciendo un echo a un array, puede que no devuelva nada o "Array 1" o algo así.

La verdad, un poco lioso el código. Pero quizas viendo alguans entradas de la BD, podríamos decirte algo.
__________________
Centro de Datos www.Cyberneticos.com
  #3 (permalink)  
Antiguo 03/03/2012, 09:27
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Problema con function php

mi bade de datos esta asi
id id_logueado estado fecha
1 3 este es mi estado 11:30:06 1/03/2012

Lo que quiero hacer es que me devuelva la fecha en formatio El 1 de marzo de 2012 a las 11:30
pero nose como hacerlo? eq nose como hacerlo porque e conseguio que se vea pero en formato que esta en la base. gracias.
  #4 (permalink)  
Antiguo 03/03/2012, 10:28
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Problema con function php

¿Puedes cambiar el tipo de valor que ingresas en la BD?
Por que si se trata de dar formato a una fecha puedes usar date().

http://php.net/manual/es/function.date.php#example-651

Y como verás más arriba se puede hacer con cualquier fecha (pasada o futura) usando mktime().
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #5 (permalink)  
Antiguo 03/03/2012, 16:28
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Problema con function php

Puedo sacar la fecha de mi base y darle un formato que yo quiera?? con mktime() se puede hacer esto?? gracias
  #6 (permalink)  
Antiguo 03/03/2012, 17:04
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Problema con function php

Se me olvido dar un dato el campo fecha contine la fecha y hora por lo cual si lo hago con esto
$var = explode('-',$fecha);
echo "$var[0]";
me imprime:
1:33:09 02 que es la hora y el mes debería hacer otro campo donde poner solo la hora??? gracias.

Etiquetas: function, sql
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 16:25.