El manejo de fechas en php siempre me trajo muchos dolores de cabeza entonces decidí crear algunas funciones que me ayuden el día a día. Muchas veces cuando guardamos la fecha en las bases de datos lo dejamos de una manera poco amigable para nuestros usuarios, entonces que mejor que colocar la fecha en español para mejorar la experiencia del usuario.
Aquí un claro ejemplo de una función creada en php de cómo hacer. Por lo general en las bases de datos cuando damos un now() al mysql se guarda de esta manera 2019-12-02 13:22:00 por supuesto que esto no queda nada bien.
function fecha_espanol($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; }
Con esta función nos va a traer la fecha en español en este caso tomando de ejemplo la fecha de mas arriba seria Lunes 2 de diciembre de 2019 utilizando de esta manera
echo fecha_espanol (‘2019-12-02 13:22:00’);
Existen otros casos en donde solo queremos que nos aparezca el año o solamente el día y nada más para eso podemos hacer de la siguiente manera
function fecha_ano ($fecha){ $nueva_fecha = date("Y", strtotime($fecha)); return $nueva_fecha; } function fecha_dia ($fecha){ $nueva_fecha = date("d", strtotime($fecha)); return $nueva_fecha; }
Otro de los casos que mas seguido tuve es el formato de la fecha, como en latina américa el formato de fecha es distinto al norte americano muchas veces cuando utilizamos la función now() propio del mysql la fecha se queda registrado en este formato. Así que simplemente para poder cambiar el formato de fecha con php puedes utilizar de esta manera.
function fecha ($fecha){ $nueva_fecha = date("d-m-Y", strtotime($fecha)); return $nueva_fecha; }
En la función date del propio php podemos asignar como queremos ver la fecha estos se representan de esta manera:
d = dia
m = Mes
Y = año
Es muy importante saber que para el año si o si debemos de colocar la Y en mayúscula para no encontrarnos con algún error al momento de imprimir las fechas.