Traducir fecha a español en laravel

  • Autor Autor eswal200
  • Fecha de inicio Fecha de inicio
eswal200

eswal200

Préstamo
Zeta
Verificación en dos pasos activada
Verificado por Whatsapp
Hola gente.

Estoy utilizando lo siguiente para mostrar en la viste una fecha:

PHP:
 <h5 class="mb-0 fw-900">{{ date('d M Y',  strtotime($project->Finalize))}} </h5>


Eso me muestra fecha de esta forma: 19 Jan 2021

pero quiero cambiar el mes que esta en ingles a español, el resultado seria: 19 enero 2021

Tienen idea de como puedo hacer esto, tengo rato y no hayo como hacerlo

En un proyecto en laravel

Saludos-
 
Prueba con setlocale, es la forma estandar en PHP para cambiar de idioma de fechas.
 
Saludos,

Por qué no usas Carbon para las fechas? Ya Laravel lo incluye.
 
Saludos,

Por qué no usas Carbon para las fechas? Ya Laravel lo incluye.

Si ya lo se, pero soy muy novato con laravel y no se cómo hacerlo, si sabes de algún tutorial me lo pasas.
 
Si ya lo se, pero soy muy novato con laravel y no se cómo hacerlo, si sabes de algún tutorial me lo pasas.

Qué formato tienes en la variable $project->Finalize?
 
Qué formato tienes en la variable $project->Finalize?

lo que hace es llamar la información de un campo en de la base de datos.

que seria la fecha de finalización. por eso la llame "Finalize"

todo funciona bien solo es que me muestra la fecha en ingles.
 
lo que hace es llamar la información de un campo en de la base de datos.

que seria la fecha de finalización. por eso la llame "Finalize"

todo funciona bien solo es que me muestra la fecha en ingles.

Yo me refería si era de tipo fecha (timestamp). Si la columna de la base de datos es fecha. Me entiendes? Si ese es el caso, haz esto:

1.- Revisa que en el archivo config/app.php tienes en 'locale' => 'es',
2.- Agrega al AppServiceProvider.php en el método boot
PHP:
    public function boot()
    {
        \Carbon\Carbon::setLocale(config('app.locale'));
        ....
    }

3.- Acá ya puedes usar todas las fechas traducidas, ejemplo:

HTML:
<h5 class="mb-0 fw-900">{{ $project->Finalize->translatedFormat('d M Y') }}</h5>

No hace falta date o strtotime, ya con Carbon puedes usar el formato que quieres. Si quieres usar un formato normal sin estar traduciendo:

PHP:
{{ $project->Finalize->format('d/m/y') }}

Acá para que veas un poco la documentación: https://carbon.nesbot.com/docs
 
Ya te entiendo, no es timestamp es varchar, pero puedo crear otra sin problema

en el archivo app.php tenia varios lines con 'en' y las coloque en 'es'

'locale' => env('DEFAULT_LANGUAGE', 'es'),

'fallback_locale' => 'es',

en el archivo .env remplace DEFAULT_LANGUAGE="en" por DEFAULT_LANGUAGE="es"

al utilizar:

Insertar CODE, HTML o PHP:
{{ $project->Finalize->format('d/m/y') }}

me da error :

Illuminate \ View \ ViewException (E_ERROR)
Call to a member function format() on string (View: C:\xampp\htdocs\free\resources\views\frontend\default\project-single.blade.php)
Previous exceptions

  • Call to a member function format() on string (0)


 
Si.. obvio dará error, tiene que ser formato fecha para que Laravel lo reconozca. Si vas a trabajar con fechas, es mejor colocarles su formato adecuado.
 
Si.. obvio dará error, tiene que ser formato fecha para que Laravel lo reconozca. Si vas a trabajar con fechas, es mejor colocarles su formato adecuado.

Ya lo coloque formato de fecha. si me va : {{ $project->Finalize->format('d/m/y') }}


pero sigue en ingles
 
Hola gente.

Estoy utilizando lo siguiente para mostrar en la viste una fecha:

PHP:
 <h5 class="mb-0 fw-900">{{ date('d M Y',  strtotime($project->Finalize))}} </h5>


Eso me muestra fecha de esta forma: 19 Jan 2021

pero quiero cambiar el mes que esta en ingles a español, el resultado seria: 19 enero 2021

Tienen idea de como puedo hacer esto, tengo rato y no hayo como hacerlo

En un proyecto en laravel

Saludos-
Insertar CODE, HTML o PHP:
<?php setlocale(LC_TIME, 'es_ES'); ?>{{ $post->date->formatLocalized('%a, %b %d, %Y %H:%M') }}
 
Insertar CODE, HTML o PHP:
<?php setlocale(LC_TIME, 'es_ES'); ?>{{ $post->date->formatLocalized('%a, %b %d, %Y %H:%M') }}


el resultado es el siguiente:

Sat, Jun 12, 2021 18:35

Tamos en las mismas


😭 😭 😭 😭 😭 😭 😭
 
Ya lo coloque formato de fecha. si me va : {{ $project->Finalize->format('d/m/y') }}


pero sigue en ingles

Pero arriba te coloqué primero como debes imprimirlo si quieres que sea traducido, ese ejemplo es para el formato sin traducir.

{{ $project->Finalize->translatedFormat('d M Y') }}
 
@eswal200 maneja las fecha con Carbon es lo mejor, tiene los ajuste de la traducción.
 
Solo por mencionar:
Algo que yo suelo utilizar para fechas es sí o sí parsear con Carbon.
En éste ejemplo utilizaré tu variable $project->finalize

PHP:
$fecha = \Carbon\Carbon::parse($project->finalize);
$fechaFinal = $fecha->format('d-M-Y'); //Sin formatear el idioma

// ó de la forma

$fechaFinal = $fecha->translatedFormat('d-M-Y'); //Formateando los nombres de los días o meses según tu configuración de locale app.php
// 'locale' => 'en', //así viene por defecto para inglés
// 'locale' => 'es', //lo modificas así para español


Y si querés utilizar directamente en la vista sería algo como:
PHP:
{{ \Carbon\Carbon::parse($project->finalize)->format('d-M-Y') }}


//ó esta otra para traducir la fecha


{{ \Carbon\Carbon::parse($project->finalize)->translatedFormat('d-M-Y') }}
 
Última edición:
Atrás
Arriba