Funciones php útiles para trabajar con fechas

PHP      23 Agosto, 2008      1923 lecturas      3 comentarios

estas son las funciones PHP que más utilizo a la hora de trabajar con fechas:

time
devuelve la hora actual medida en una timestamp de UNIX.

  • $fecha_en_segundos = time(); // resultado: 1219336205

mktime
obtiene la marca de tiempo UNIX de una fecha.

  • $fecha_en_segundos = mktime($hora,$minuto,$segundo,$mes,$dia,$any); // resultado: 1219336205

strtotime
procesa cualquier descripción textual de fecha/hora en Inglés convirtiéndola en una timestamp de UNIX.

  • $fecha_en_segundos = strtotime(‘2008-08-21 18:30:05′); // resultado: 1219336205

date
da formato a una hora/fecha local.
lo malo de esta función es que si queremos mostrar el día de la semana o mes siempre sale en inglés.

  • $fecha = date(‘d/m/Y’); // resultado: 21/08/2008
  • $fecha = date(‘d/m/Y’, $fecha_en_segundos); // resultado: 21/08/2008

strftime
da formato a una hora/fecha local de acuerdo a valores de localidad.

  • $fecha = strftime(‘%A, %e de %B %Y‘); // resultado: jueves, 21 de agosto 2008
  • $fecha = strftime(‘%A, %e de %B %Y‘, $fecha_en_segundos); // resultado: jueves, 21 de agosto 2008

por defecto la fecha sale en inglés, para que salga en español tienes que ejecutar previamente un setlocale según el sistema operativo de tu servidor:

  • setlocale(LC_TIME, ‘es_ES’); para 1&1
  • setlocale(LC_TIME, ‘es_ES@euro’); para Framecom
  • setlocale(LC_TIME, ‘es_ES.ISO-8859-15@euro’); en Sistemas Debian
  • setlocale (LC_TIME, ‘es_ES@euro’); en Terions
  • setlocale(LC_TIME, ‘es_ES’); en Debian Woody
  • setlocale(LC_TIME, ‘es_ES’); para Sistemas Linux/SuSE
  • setlocale(LC_TIME, ‘es_ES’); sobre RedHat
  • setlocale(LC_TIME, ‘es_ES.ISO_8859-15′); sobre FreeBSD
  • setlocale(LC_TIME, ‘es’); o setlocale(LC_TIME, ‘Spanish’); sobre Windows

lista de setlocales extraída de Redondo Web Services

Es posible que no tengas instalado los paquetes locales en tu servidor:

  • para comprobarlo usa el comando: locale -a
  • para instalar todos los paquetes locales el comando es: apt-get install locales
Compartir   twitter   del.icio.us   webeame   meneame   stumbleupon   mr.wong   ?  


  1. Jordi Oller

    Creo que necesitas unas vacaciones! … te vienes conmigo para Cuba el viernes? Y así le decimos a Fidel que internacionalice el es_CU (locale)? jejeje


    Saludos.



  2. /grunch0

    Me viene bien para una gilichorrada que estoy programando para acordarme de los cumples de mi gente XDD



  3. diseño web

    Gracias por el ayuda memoria!