Uso de tiempos y fechas

PHP tiene la capacidad de reconocer fechas y horas que son almacenadas por la computadora en un formato llamado "timestamp". Es una variable de tiempo y no tiene un formato definido por lo que PHP nos da la opción de convertirlo a un formato mas familiar y asi poder crear nosotros mismos fechas y tiempos personalizados.



1. Configurar hora local

A partir de PHP 5.1 podemos encontrarnos en el archivo de configuración "php.ini" un nuevo valor que nos permitirá configurar una zona horaria local predeterminada. En linux este archivo esta localizado en la ruta "/etc/php5/apache2/php.ini" y para configurar la zona horaria podremos hacerlo siguiendo estos pasos:

  • Abrir el archivo con un editor de texto y localizar la sección [Date]
  • Modificar la variable "date.timezone" asignándole una zona horaria compatible
  • Si la variable comienza con punto y coma ";" deberemos eliminarlo para su uso

En el siguiente enlace podremos consultar todas las zonas horarias compatibles: Zonas Horarias

Si no disponemos o no tenemos acceso al archivo podemos aplicar una zona horaria a nuestro script utilizando la siguiente función (se aplicará a todo el script):
        date_default_timezone_set("Europe/Madrid");
También podremos recuperar la zona horaria del lugar con la siguiente función:
        $horario = date_default_timezone_get();



2. Formato de la fecha

La función que vamos a utilizar en este caso va a ser: "date()". Que nos permite recuperar una fecha o un tiempo desde el "timestamp" a parte de poder darle el formato deseado. La función utiliza la siguiente declaración:
        $fecha = date("format", $timestamp);
La variable "$timestamp" sera un tiempo que hemos almacenado previamente al que le vamos a aplicar un formato a través del parámetro "format". Podremos utilizar la función con un único parámetro para recuperar la fecha actual, a continuación se muestra un ejemplo:
        $fecha = date("d/m/y");        // Salida:    05/08/2013
El formato puede estar separado por: - o /

En el siguiente enlace podemos encontrar todos los formatos soportados: Formatos Soportados



3. Almacenar "timestamp" en una variable

Con el uso de la funcion "time()" podremos recuperar el "timestamp" y almacenarlo en una variable utilizando la siguiente declaración:
        $tiempo = time();

Otra función mucho mas completa que la anterior es la siguiente:
        $tiempo = strtotime("today");
Nos permite recuperar el tiempo indicando el formato deseado en los paréntesis. Esta función admite como parámetros claves y abreviaturas en Ingles como muestra el ejemplo:
        $tiempo = strtotime("August 05 2013");

La función reconoce como parámetros:
  • Nombres de mes
  • Días de la semana
  • Unidades de tiempo: year, month, fortnight, week, day, hour, minute, second, am, pm
  • Algunas palabras: ago, now, last, next, this, tomorrow, yesterday
  • Mas y menos: + y -
  • Todos los números
  • Zonas horarias: gmt, pdt, akst

Se pueden combinar de muchas maneras posibles, algún ejemplo puede ser:
        $fechaImportante = strtotime("tomorrow");
        $fechaImportante = strtotime("last saturday");
        $fechaImportante = strtotime("8pm + 3 days");
        $fechaImportante = strtotime("next year gmt");
        $fechaImportante = strtotime("this 4am");
Si queremos saber la diferencia de tiempo entre una fecha almacenada y la fecha actual, podremos utilizar las siguientes declaraciones:
        $tiempo = time();
        $resultado$tiempo - $fechaAlmacenada;
Pero la salida nos dará un tiempo en segundos, podríamos convertirlo a horas de la siguiente manera:
        $resultado = (($tiempo - $fechaImportante)/60)/60;


No hay comentarios:

Publicar un comentario