Escrito por Iván Alonso el Lunes 23 de Febrero de 2009

Apunte rápido sobre cómo mostrar las fechas en tu idioma utilizando php:

<?php setlocale(LC_ALL, 'es_ES.ISO-8859-15@euro'); 
echo strftime('%A %d de %B de %Y', strtotime(get_the_time('m/d/Y'))); ?>

Primero establecemos que nuestro idioma será es_ES (sólo con ese identificador ya sería suficiente, aunque aquí lo hemos especificado algo más), y después parseamos la fecha que nos devuelve get_the_time.

Actualizado: Acabo de darme cuenta de que esta forma únicamente es válida cuando estamos dentro de the_loop, y que get_the_time siempre nos devolverá la fecha del post en el que nos encontramos en ese momento. Para obtener la hora del servidor podemos utilizar funciones de php independientes de WordPress:

echo strftime('%A %d de %B de %Y', time());

La razón de ser de que esto funcione es que strftime sí respeta la localización especificada en setlocale.

Actualizado (II): Si con este mecanismo vuestras fechas se muestran traducidas pero en ocasiones muestran símbolos extraños (por ejemplo, la e acentuada de Miércoles), el problema puede estar debido a que estáis intentando escribir un código ISO-8859-15 dentro de una página cuya codificación es otra, por ejemplo UTF8. Solución: utilizad la misma codificación que la página.

<?php setlocale(LC_ALL, 'es_ES.UTF8'); 
echo strftime('%A %d de %B de %Y', strtotime(get_the_time('m/d/Y'))); ?>

Etiquetas: ,

Esta entrada fue escrita el Lunes 23 de Febrero de 2009 a las 12:09 pm y está archivada en la categoría Blog. Puedes seguir las respuestas y comentarios en el feed RSS 2.0. Puedes dejar un comentario, o dejar un trackback desde tu propia página.

Un comentario en “WordPress: Mostrar fechas en tu idioma”

  1. Incluida la segunda actualizacion (intentar insertar ISO-8859 en mitad de UTF8 produce simbolos extraños ;) )

Deja tu comentario