¡Muy buenas! Escribo esta entrada el último día de este mes. Estuve bastante ocupado trabajando en un par de proyectos, y recién hoy tengo un día completamente libre.
En esta ocasión traigo un tutorial bastante sencillo, donde voy a enseñar como pasar de una fecha hecha con la función date()
a un texto en castellano, conteniendo el nombre del día, el número del mismo, el mes y el año.
Para esto se usa este tipo de fechas:
30-04-2016 04:20:00
Que se crean así:
//Se define el timezone que sea necesario date_default_timezone_set('America/Argentina/Buenos_Aires'); //Dia-Mes-Año Hora:Minutos:Segundos $fecha = date('d-m-Y H:i:s');
Y obtendremos como resultado:
Sábado 30 de Abril de 2016
Es importante que los separadores de la fecha sean un guión y no una barra (-, no /). Los guiones definen el sistema de formato europeo, mientras que las barras definen que el formato es «americano» (estadounidense).
¿Cómo pasar la fecha a castellano?
Para hacerlo más ameno , crearé una función llamada fechaCastellano, así podremos guardar la función en un archivo y requerirlo en PHP cuando sea necesario. La misma obtendrá un único parámetro, que es el de fecha.
function fechaCastellano ($fecha) { }
Ahora recortaremos la fecha para obtener los diez primeros caracteres (es decir: 30-04-2016). No importa si la fecha tiene o no la hora, es por si acaso.
function fechaCastellano ($fecha) {
$fecha = substr($fecha, 0, 10);
}
Después vamos a obtener el número de día, el día (nombre del día), el mes y el año. Esto se hace con la función strtotime().
function fechaCastellano ($fecha) { $fecha = substr($fecha, 0, 10);$numeroDia = date('d', strtotime($fecha));
$dia = date('l', strtotime($fecha));
$mes = date('F', strtotime($fecha));
$anio = date('Y', strtotime($fecha));
}
Por defecto el día y el mes ($dia
, $mes
) se obtienen en inglés, así que vamos a pasarlo a castellano/español usando str_replace().
function fechaCastellano ($fecha) { $fecha = substr($fecha, 0, 10); $numeroDia = date('d', strtotime($fecha)); $dia = date('l', strtotime($fecha)); $mes = date('F', strtotime($fecha)); $anio = date('Y', strtotime($fecha));$dias_ES = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
$dias_EN = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
$nombredia = str_replace($dias_EN, $dias_ES, $dia);
$meses_ES = array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
$meses_EN = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
$nombreMes = str_replace($meses_EN, $meses_ES, $mes);
}
Lo último sería devolver los datos en una sintaxis clara. En este caso sería así:
function fechaCastellano ($fecha) {
$fecha = substr($fecha, 0, 10);
$numeroDia = date('d', strtotime($fecha));
$dia = date('l', strtotime($fecha));
$mes = date('F', strtotime($fecha));
$anio = date('Y', strtotime($fecha));
$dias_ES = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
$dias_EN = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
$nombredia = str_replace($dias_EN, $dias_ES, $dia);
$meses_ES = array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
$meses_EN = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
$nombreMes = str_replace($meses_EN, $meses_ES, $mes);
return $nombredia." ".$numeroDia." de ".$nombreMes." de ".$anio;
}
Así solo nos quedaría hacer algo así:
<?php //Incluimos el archivo con la función o simplemente pegamos la función require('fechaCastellano.php'); //La fecha que queremos pasar a castellano $miFecha = "30-04-2016 04:20:00"; ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Fechas en castellano</title> </head> <body> <p>$miFecha = <?php echo $miFecha; ?></p> <p>fechaCastellano($miFecha) = <?php echo fechaCastellano($miFecha); ?></p> </body> </html>
Y ya tenemos la fecha en español.
Conclusión:
Es una función muy simple pero bastante útil. Recuerda que puedes modificar el return
para que se ajuste a tus necesidades.
Espero que el tutorial haya sido de utilidad. Nos leemos, ¡saludos!
Muy bueno, muchas gracias.
Me gustaMe gusta
excelente tutorial, me sirvió a la perfección. Buena vibra brother!!!
Me gustaMe gusta
Muchas gracias!!!!
Me gustaMe gusta
excelente!
Me gustaMe gusta
Muchas Gracias Excelente
Me gustaMe gusta
geniooooooo
Me gustaMe gusta
Me ha servido muchas gracias!
Me gustaMe gusta
Hola excelente!, lo empece a usar ahora, mi pregunta es: Como se haría para usarlo de 2 a 3 veces en la misma página, en mi caso tengo «Noticia anterior» y «Noticia siguiente», más la noticia que se está viendo en ese momento, lo hice cambiando los nombre de la clase, por cada ves que lo quiero usar, pero no se si es la mejor forma
Me gustaMe gusta
Simplemente cambia el parámetro de la función:
fechaCastellano(«24-04-2019 14:00:33»);
fechaCastellano(«25-04-2019 09:45:44»);
fechaCastellano(«26-04-2019 11:00:29»);
Puedes pasarle variables (como en el ejemplo del post) o strings directamente (como en el ejemplo que te di ahora).
Me gustaMe gusta
MUY BUENOOO CHEEEE
Me gustaMe gusta