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