Stack Overflow en español Asked by C47 on January 22, 2021
Alguien sabe como obtener el nombre del mes de una fecha en español utilizando Carbon y Laravel.
Actualmente uso:
$fecha = CarbonCarbon::parse($data["Fecha"])
$mes = $fecha->format("F");
Pero me devuelve el nombre del mes en inglés
Creo que la solución mas factible es esta:
No me funciona las opciones que uds. me brindaron, y realmente urge.
$meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
$fecha = Carbon::parse($inputs['Fecha']);
$mes = $meses[($fecha->format('n')) - 1];
$inputs['Fecha'] = $fecha->format('d') . ' de ' . $mes . ' de ' . $fecha->format('Y');
Correct answer by C47 on January 22, 2021
Yo lo solucione agregando en el AppServiceProvider
public function boot()
{
// Configuración para fechas en español
Carbon::setUTF8(true);
Carbon::setLocale(config('app.locale'));
setlocale(LC_ALL, 'es_MX', 'es', 'ES', 'es_MX.utf8');
}
Carbon::setLocale
establece el lenguaje para diffForHumans()
setlocale
establece el lenguaje para formatLocalized('%B')
pero solo funciona si en el servidor esta instalada alguna de las localizaciones listadas. En el caso de Ubuntu 18.04 se instala el lenguaje 'es_MX.utf8' Guia para instalar lenguajes en linux
Answered by Saúl Delgadillo R on January 22, 2021
Para que funcione en español tienes que poner lo siguiente en AppServiceProvider.php
.
En la funcion boot
:
Public function boot()
{
Carbon::setUTF8(true);
Carbon::setLocale(config('app.locale'));
setlocale(LC_TIME, config('app.locale'));
}
Para probar en tu vista puedes hacer lo siguiente:
{{ $date = CarbonCarbon::now()}}
{{$date->formatLocalized('%B')}} //nombre del mes actual
Recuerda colocar tu idioma en config/app.php lo siguiente:
'locale' => 'es',
Answered by Jonathan Teran on January 22, 2021
Ya se que es demasiado tarde intenté de todo como tú y al final di con varias cosillas una es tener el locale en el idioma que quieres checa app.php locale es
luego en AppServiceProvider.php
añadí esto en la función boot
Carbon::setLocale(config('app.locale'));
ya después en mi controller
$fecha = Carbon::parse($fSalida);
$date = $fecha->locale(); //con esto revise que el lenguaje fuera es
dd($fecha->monthName); //y con esta obtengo el mes al fin en español!
Answered by Alejandra on January 22, 2021
Carbon
usa el método estático setLocale
solo para algunos de sus métodos como diffForHumans()
más no para format
, es decir
Carbon::setLocale('es');
$fecha = Carbon::parse('03-04-2018');
$fecha->diffForHumans(); //esto se mostrará en español
$fecha->format("F"); // Inglés.
Para realizar el formato debe hacer eso de setLocale de la siguiente forma, pero el método format
seguirá en el mismo idioma, en su lugar debería utilizar el método formatLocalized
que hace uso de strftime además de añadir el .formato que desee (%B para el nombre del mes)
setlocale(LC_ALL, 'es_ES');
$fecha = Carbon::parse('03-04-2018');
$fecha->format("F"); // Inglés.
$mes = $fecha->formatLocalized('%B');// mes en idioma español
además puede revisar el siguiente paquete Jenssegers/date para manejar idioma en fechas con Laravel.
Answered by Dev. Joel on January 22, 2021
Hola prueba con lo siguiente:
setlocale(LC_ALL,"es_ES");
CarbonCarbon::setLocale('es');
$fecha = CarbonCarbon::parse($data["Fecha"])
$mes = $fecha->format("F");
Ojo: Si tienes un archivo de configuración, trata de llamar el método setlocale desde allí.
Answered by diego orellana on January 22, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP