Autor Tema: Script en PHP de tiempo  (Leído 857 veces)

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

Desconectado Rock Lee

  • Administrador
  • *
  • Mensajes: 1118
    Ingreso: Enero de 2014
  • Sexo: Masculino
  • ar
  • Digitalizando tu Mundo
    • Ver Perfil
    • La nueva era del conocimiento
Script en PHP de tiempo
« on: 21 Julio de 2015, 11:47 pm »
Acá andamos con mas cosas y ideas dan vuelta en mi cabeza, justo limpiando un poco mi partición de poco mas de 500GB no recordaba guardaba tanta basura xD me encontré un script hice en primer año de universidad cuando me toco codear algo para evaluar nuestro nivel de programación, no es muy complejo o mucho pero me pareció interesante mostrarlo ademas de ver cuando he mejorado aunque no seguí con PHP sino con otros lenguajes, algún día le daré duro de nuevo a PHP ::)

Básicamente el código da los resultados que sucedieron en una acción en PHP, aunque ahora lo pienso me he complicado mucho en realizarlo podría hacerlo de otra manera mas sencilla pero bueno se aprende a base de errores... "La experiencia no llega solo sino con los años, tras muchos errores y siempre volviendo a intentarlo con mas ganas de aprender un nuevo conocimiento para superarlo."


Código: (PHP) [Seleccionar]
function tiempo($valor){
$s='0';
$formato_defecto="h:i  d/m/y";
 
 
if(stristr($valor,'-') || stristr($valor,':') || stristr($valor,'.') || stristr($valor,',')){
 
    if(stristr($valor,'[')){
        $explotar_valor=explode('[',$valor);
        $valor=trim($explotar_valor[0]);
        $formato=str_replace(']','',$explotar_valor[1]);
    }else{
        $formato=$formato_defecto;
    }
 
    $valor = str_replace("-"," ",$valor);
    $valor = str_replace(":"," ",$valor);
    $valor = str_replace("."," ",$valor);
    $valor = str_replace(","," ",$valor);
 
    $numero = explode(" ",$valor);
 
    $formato = str_replace("-"," ",$formato);
    $formato = str_replace(":"," ",$formato);
    $formato = str_replace("."," ",$formato);
    $formato = str_replace(","," ",$formato);
 
    $formato = str_replace("d","j",$formato);
    $formato = str_replace("m","n",$formato);
    $formato = str_replace("G","H",$formato);
 
    $letra = explode(" ",$formato);
 
    $relacion[$letra[0]]=$numero[0];
    $relacion[$letra[1]]=$numero[1];
    $relacion[$letra[2]]=$numero[2];
    $relacion[$letra[3]]=$numero[3];
    $relacion[$letra[4]]=$numero[4];
    $relacion[$letra[5]]=$numero[5];
 
    $valor = mktime($relacion['h'],$relacion['i'],$relacion['d'],$relacion['m'],$relacion['y']);
 
}
 
$ht = time()-$valor;
if($ht>=2116800){
$dia = date('d',$valor);
$mes = date('m',$valor);
$año = date('y',$valor);
$hora = date('h',$valor);
$minuto = date('i',$valor);
$mesarray = array('','Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
$fecha = "el $dia de $mesarray[$mes] del $año";
}
if($ht<30242054.045){$hc=round($ht/2629743.83);if($hc>1){$s="es";}$fecha="Hace $hc mes".$s;}
if($ht<2116800){$hc=round($ht/604800);if($hc>1){$s="s";}$fecha="Hace $hc semana".$s;}
if($ht<561600){$hc=round($ht/86400);if($hc==1){$fecha="Ayer";}if($hc==2){$fecha="Antes de ayer";}if($hc>2)$fecha="Hace $hc días";}
if($ht<84600){$hc=round($ht/3600);if($hc>1){$s="s";}$fecha="Hace $hc hora".$s;if($ht>4200 && $ht<5400){$fecha="Hace más de una hora";}}
if($ht<3570){$hc=round($ht/60);if($hc>1){$s="s";}$fecha="Hace $hc minuto".$s;}
if($ht<=3){$fecha="Ahora";}
return $fecha;
 
}

Ahora la pregunta seguro surge a todo esto: ¿Cómo usar esta función?, es muy sencillo simplemente debemos ver esta función en PHP

Código: [Seleccionar]
<?= tiempo($numero); ?>

donde dicha variable $numero, ira la fecha que deseas que pase... Puede ser MySQL para así obtener desde el servidor o una fecha en especifico, depende de vos.


Como ven es algo simple y aunque no recuerdo como lo hice, algo seguro es que la parte final al no funcionar tome parte de un codigo de internet... Pero no se bien si funciona tendria que probarlo para corregir algun error aunque es algo tarde por eso sera mejor lo haga mañana mas lucido ;D


Saludos Familia!

PD: Si encuentran algún error no duden en decírmelo ;) y sobre todo no olviden todos estamos aprendiendo, ya que nadie nació sabiéndolo todo!

PD2: Para mas información pueden visitar > http://php.net/manual/es/function.date.php aunque como ven lo realiza de otra manera algo en este momento lo haría pero como dije este es un borrador viejo. Siempre es bueno recordar donde comenzamos para ver donde estamos y sin dudas avanzar mas en el futuro! :)
« Última Modificación: 22 Julio de 2015, 12:04 am por Rock Lee »