Estoy seguro de que todos los desarrolladores que utilizan PHP para sus páginas, han utlizado alguna vez la función date(). Hay muchos casos en los que se puede utilizar esta función en una web, como usar date(”Y”) para mostrar el año actual en el copyright. Aquí teneis algunos consejos que os pueden ser útiles a la hora de trabajar con fechas en PHP.

Formato

Constantes predefinidas

A partir de la versión 5.1.1 de PHP, existe la posibilidad de utilizar constantes predefinidas para dar formato a las fechas. Por ejemplo, mediante la constante DATE_RSS, podremos obtener una fecha en el formato correcto para nuestro feed RSS.

Ejemplo

Usar:

  1. echo date(DATE_RSS);
  2. // Resultado: Thu, 04 Dic 2008 12:29:09 -0500

En vez de:

  1. echo date(‘D, d M Y G:i:s O’);
  2. // Resultado: Thu, 04 Dic 2008 12:29:09 -0500

Utilizando esta misma idea, podremos crear nuestras propias constantes para usarlas a la hora de formatear las fechas. Tan solo necesitamos crear previamente la constante, utilizando la funcion define().

Ejemplo

  1. define(‘fecha’, ‘d/m/Y’);
  2. echo date(fecha);
  3. // Resultado: 04/12/2008

Fechas Relativas

Este truco lo uso cuando necesito conseguir la fecha de mañana, pasado mañana, o de ayer. La función strtotime() nos permite facilmente cacular este tipo de fechas. Se puede convertir cualquier cadena de texto con una fecha formateada para GNU a una fecha en PHP. Tomaremos como día actual el 4 de diciembre.

Ejemplo

  1. echo date(‘d-m-Y’,strtotime(‘yesterday’));
  2. // Resultado: 03-12-2008
  3.  
  4. echo date(‘d-m-Y’,strtotime(‘+4 days’));
  5. //Resultado: 08-12-2008

Calcular la edad

This trick is a fairly simple and straight forward one. All it does is find an age in years. Simply pass the year(s) you want to compare and it will return the age in year. This could easily be made into a function like getAge($yr1,$yr2);

El siguiente script calcula una edad en años. Tan solo debemos proporcionar el año “inicial”, y nos devolverá los años que han pasado desde entonces, o hasta la fecha que indiquemos como final. Es fácil crear una función como la siguiente:

  1. function calcularEdad($anyoInicial, $anyoFinal) {
  2.     return floor(abs(strtotime($anyoFinal) - strtotime($anyoInicial))/31536000);
  3.     //  31536000 corresponde a un año en segundos
  4. }
  5.  
  6. // La llamada a la función
  7. $edad = calcularEdad(1984, date("Y"));
  8. echo $edad;
  9. // Resultado: 24;

Artículo traducido del original publicado por webmastersbydesign.com

Comparte esta entrada:
  • Digg
  • BlinkList
  • del.icio.us
  • BarraPunto
  • Google
  • Meneame
  • Technorati
  • E-mail this story to a friend!
  • Facebook
  • MisterWong
  • TwitThis

Si eres nuevo, puedes subscribirte a nuestras noticias por RSS feed. Gracias por tu visita!