Función "hace n días n horas n minutos" en PHP

Seguramente han visto en algunos sitios o blogs, en los post o comentarios la fecha en formato: escrito por tal_usuario hace 10 días 9 horas 7 minutos. Yo siempre me preguntaba como se hace, así que investigando (googleando) no di, así que se me ocurrió hacerlo por mi cuenta ¿Cómo? lo explicare.

Lo que necesitas es trabaja con una tabla de datos (en MySQL por ejemplo) y tener un campo de tipo datetime. Cuando realices una consulta de esta tabla hazlo de la siguiente forma:

SELECT *, UNIX_TIMESTAMP(campo_fecha) AS fecha_unix FROM mitabla

¿Qué hemos hecho? La consulta SELECT devolverá los datos con un campo adicional llamado fecha_unix, por eso usamos función la UNIX_TIMESTAMP que devuelve la fecha unix (segundos desde 1970-01-01 00:00:00 GMT). 

Ahora veamos la función PHP, la llamaremos hace() que tendrá como parámetro de entrada la fecha en formato Unix:

 function hace($fecha_unix){
//obtener la hora en formato unix
$ahora=time();

//obtener la diferencia de segundos
$segundos=$ahora-$fecha_unix;

//dias es la division de n segs entre 86400 segundos que representa un dia;
$dias=floor($segundos/86400);

//mod_hora es el sobrante, en horas, de la division de días;
$mod_hora=$segundos%86400;

//hora es la division entre el sobrante de horas y 3600 segundos que representa una hora;
$horas=floor($mod_hora/3600);

//mod_minuto es el sobrante, en minutos, de la division de horas;
$mod_minuto=$mod_hora%3600;

//minuto es la division entre el sobrante y 60 segundos que representa un minuto;
$minutos=floor($mod_minuto/60);

if($horas<=0){
echo $minutos.' minutos';
}elseif($dias<=0){
echo $horas.' horas '.$minutos.' minutos';
}else{
echo $dias.' dias '.$horas.' horas '.$minutos.' minutos';
}
}

Seguramente hay otras formas de hacer esto, pero esta es mi aportación. Espero que les sirva.

Liberando el código de Tablero dinámico (2)

Ahora veremos la parte del servidor. Creamos el archivo conexion.php con los datos de la conexión al tu servidor MySQL, algo así:

<?php
//Configuracion de la conexion a base de datos
$bd_host = "miservidor";
$bd_usuario = "miusuario";
$bd_password = "micontraseña";
$bd_base = "mibasededatos";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>

Vamos con el archivo que realiza la consulta de todos los datos en la tabla tablero: consulta.php

Hacemos referencia (require) al archivo con los datos de la conexión a la base de datos MySQL (conexion.php). Obtenemos la variable GET ultfec (la variable que definimos en JavaScript), si no tiene valor entonces consultamos todos los datos de la tabla tablero caso contrario, si tiene un valor (la ultima fecha que se consultó) entonces solo se consultará la diferencia, osea todos los datos cuya fecha sea mayor a la última.

Ver Artículo Completo ››

Liberando el código de Tablero dinámico (1)

Son muchas las solicitudes para mostrar el código fuente del Tablero dinámico, el fisgón (si así desean llamarlo) de este blog, por ello aquí explicaré su funcionamiento desde el registro de la hora, ip y enlace del articulo hasta el efecto de alumbrado o fade de color amarillo y la creación de los divs mediante el manejo del DOM con JavaScript.

Ver Artículo Completo ››

Editar código en tiempo real (online) con CodePress

CodePress es una de los mas sorprendentes editores de código online. La implementación es parte del proyecto ECCO, un IDE web en estado alfa, y su creador consideró separar una parte de este IDE y convertirlo en CodePress.

Editor de código online

Caracteristicas

  • Resaltado de sintáxis en tiempo real.
  • Soporta lenguajes ASP, CSharp, CSS, HTML, Java, JavaScript, Perl, PHP, Ruby, SQL y VBScript.
  • Snippets (pequeños fragmentos de códigos útiles).
  • Autocompletado de código.
  • Shortcuts.
  • Multiples instancias de CodePress en la misma página.

Enlaces | CodePress

5 cosas que puedes hacer con PHP en Windows

Interesante artículo que muestra 'cosillas' que podemos hacer en Windows con el lenguaje para script/server PHP. Funciona así lo ejecutemos desde un servidor web Apache o IIS. Para muestra un bótón:

Expulsar un CD-ROM

 //create an instance of Windows Media Player

$mp = new COM("WMPlayer.OCX");

//ejects the first cd-rom on the drive list

$mp->cdromcollection->item(0)->eject();

¿Interesante verdad? El artículo completo explica además:

  • Leer y escribir desde/al registro.
  • Registrar (o lo contrario) script de PHP como servicios de Windows.
  • Imprimir página.
  • Listar los procesos del sistema actuales.

Enlace | 5 cool things you can do with windows and php

fValidator: validando formularios con JavaScript y mootools

Mediante fValidator podemos usar JavaScript para validar los campos de un formulario HTML antes de ser enviados. Puede validar campos tipo alfabéticos, numéricos, fecha, coincidencia de campos (contraseñas) y mas. Esta utilidad trabaja con mootools y algunas de sus dependencias: core, class, native, element, effects. Veamos una forma básica de usarlo en nuestro proyectos web.

Pero primero descargar el fValidator, existen dos versiones: un paquete comprimido (3.77KB) y una versión completa (7.20KB). También vamos a necesitar en mootools y las dependencia que sitamos arriba, puede descargarlo desde aqui.

Cómo usarlo

Dentro de las etiquetas <head> </head> llamamos a los archivos JavaScript implicados, e iniciamos el validador para nuestro formulario. Ya dentro de nuestro formulario, en cada campo especificaremos que tipo de dato validará el fValidator. Veamos un ejemplo.

Ver Artículo Completo ››

LivePipe: Componentes para desarrollo web en Ajax

LivePipe es una web donde podemos encontrar temas relacionados con PHP, Ruby y JavaScript. Un sitio que cuenta con una sección de foros, blog y proyectos, que constantemente se actualizan. Justamente en su sección Projects, encontramos pequeñas librerias que podemos usarlos en nuestro proyectos web, tales como: Control Tabs, Control Modal, Control TextArea y mas. Aparte en su blog a veces muestran ejemplos interesantes relacionados con JavaScript. Un sitio recomendado!

Ejemplos de Pipe

Reducir el tiempo de carga de una página concatenando imágenes

El uso de iconos e imágenes han sido esenciales para mostrar un entorno gráfico agradable y atractivo para el usuario en las páginas web. Ahora que se habla de la web 2.0 (donde no solo el servicio es lo que cuenta sino también un buen desarrollo web) las aplicaciones web son mas complejas, la cantidad de imágenes y de iconos puede afectar grandemente el tiempo en que se carga o muestra un página web. Todo desarrollador debe tener en cuenta que mientras mas ligera sea un página tardará menos su carga, y eso es importante en estos días en que se da mucha importancia a Ajax, lo que nos hace usar muchas librerías como script.aculo.us, prototype u otros. Claro hay versiones reducidas de estas librerias, pero aun así explicaremos un técnica para reducir la tiempo de carga de página web: concatenar las imágenes.

¿Concatenar imágenes?

Para tener una idea de lo que queremos decir, vea este ejemplo:

Imagenes separadas

Concatenando este grupo de imágenes se vería así:

Imagenes concatenadas

La idea de concatenar las imágenes es que estás estén agrupadas en un solo archivo cuando accedemos a una página web. Ya cuando van a ser mostradas las 'partiremos' en lo que corresponde. Esto se hace con CSS, una imagen transpararente GIF de 1x1 píxel y mucha imaginación.

Ver Artículo Completo ››

Videos introductorios a Ruby

En ShowMeDo encontramos una nueva serie de videos introductorios a Ruby . De momento hay 5 videos en la serie que empiezan por el uso básico del irb y las caracteristicas básicas de Ruby, pasando por creación y uso de clases, expresiones regulares, CSV y mas.

Videos Introductorios a Ruby

Loupe.js, amplia tus imágenes

La nota anterior hablo acerca de como aplicar un zoom a una imagen. Un objetivo similar tiene esta utilidad llamada Loupe.js , la cual muestra una lupa sobre tus imágenes y amplia la parte donde está ubicada esta. Eso si, necesitas dos imágenes, una que será la muestra por donde se paseará la lupa y la otra debe ser una imagen original (por supuesto una imagen grande). Trabaja sobre Firefox 1.5+, Opera 9+ y Safari.

¿Cómo usarlo?

Ejemplo básico de como usar esta utilidad. Basta con hacer referencia al archivo JavaScript y especificar en el evento onLoad la función initLoupe con dos parametros.

<html>
<head>
<title>Loupe.js</title>
<script src="loupe.js" type="text/javascript"></script>
</head>
<body>
<div style="margin:auto;width:356px; height:205px; background:url(images/muestra.jpg) no-repeat;">
<img id="caribbean" onLoad="initLoupe(this.id,true);" src="images/original_grande.jpg" style="cursor:wait;" width="356" height="205" alt="large image" border="0" />
</div>
</body>
</html>

 

Amplia tus imagenes

 

Navegación

Categorias

Archivos