Funciones php útiles para trabajar con fechas
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
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.
Me viene bien para una gilichorrada que estoy programando para acordarme de los cumples de mi gente XDD
Gracias por el ayuda memoria!
Creo que me has arreglado el día para traducir el header de mi web, llevaba tres días buscando la solución para poner el día de la semana en español. ¡Gracias!