Agregar fecha a una plantilla PDF Imprimir Correo
Escrito por Leonel Canton   
Martes, 02 de Septiembre de 2008

calendarioCon un amigo estamos probando una plantilla gratuita de Joomlashack, en el sitio demo que tiene del template, aparece la fecha en el header, nada dificil de hacer

 <?php echo date('l, F dS Y'); ?>

Equivocadamente creímos que esta fecha estaba controlada por el idioma del sitio, es decir que al tener nuestro sitio en español, esta fecha saldría en español también. Nuestra sopresa empezó cuando ya temiamos todo el sitio en español (incluyendo la fecha de la creación de las noticias de ejemplo) pero esta fecha en el header del template seguía en ingles.

A continuación detallo el pequeño cambio para que esta fecha saliera en español

fecha_inglesLo primero que se hizo fue averiguar la sintaxis para el formato de la fecha, un buen lugar para empezar a ver es el manual de php hicimos los cambios correspondientes, y la fecha seguia en inglés. Por lo que el siguiente paso fue forzar a que tuviera un localidad el pedacito de php con el que se incluyó la fecha (no debería de necesitarlo, pero valia la pena el intento). Este fué el segundo intento fallido.

 <? setlocale(LC_TIME, "es_ES");  php echo date('l, F dS Y'); ?>

Por último pensamos que el problema era el servidor y que no nos iba a dejar poner la fecha como desabamos, pero para descartar eso, copiamos en un pequeño archivo el siguiente código, que es un ejemplo que se encuentra en http://www.php.net/strftime

 <?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");
setlocale(LC_TIME, "es_ES");
echo strftime(" en español %A.\n");
?>

 

fecha_esp

Debido a que este si funciono, procedimos a modificar la instrucción que teníala plantilla para utilizar la función strftime en lugar de date, hicimos los cambios correspondientes y ahora si, la fecha aparece en español. Pero como somos un poco detallistas no nos gusto que apareciera "martes", queriamos "Martes". Por lo que acudimos nuevamente al manual de php, a buscar alguna función que nos ayudará en este pequeño capricho y encontramos la funicón ucfirst. Ya tenemos todo lo que deseabamos, el código final fue

 <?php echo ucfirst(strftime("%A, %d de "));echo ucfirst(strftime("%B de %Y")); ?>

 

 

Última actualización ( Miércoles, 10 de Septiembre de 2008 )