148 votes

changer le format de la date dans la page de vue de laravel

Je veux changer le format de la date qui est récupérée dans la base de données. J'ai maintenant 2016-10-01 {{$user->from_date}} Je veux changer le format "j-m-y" dans laravel 5.3.

{{ $user->from_date->format('d/m/Y')}}

255voto

Mayank Pandeyz Points 17903

Essayez ça :

date('d-m-Y', strtotime($user->from_date));

Il convertira la date en d-m-Y ou tout autre format que vous avez donné.

Nota: Cette solution est une solution générale qui fonctionne pour php et tous ses frameworks. Pour une méthode spécifique à Laravel, essayez la solution fournie par Hamelraj .

3 votes

@user3386779 : Cela fonctionne mais ce n'est pas la plus belle solution :) Laravel a peu de mécanismes pour faire ces choses. Si vous choisissez ma réponse, vous devez définir le format de la date à un seul endroit et vous n'avez pas besoin de vous souvenir de changer le format de la date à chaque fois que vous avez besoin de l'afficher. from_date colonne.

0 votes

@MarekSkiba J'ai mentionné la même chose dans ma réponse :)

0 votes

Qu'en est-il du changement de langue par exemple -> 'es' pour les noms de mois

174voto

Hamelraj Points 1895

Dans Laravel, utilisez Carbone c'est bien

{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}

0 votes

Oui, et qu'en est-il lorsque le $user->from_date est null ?

1 votes

@lewis4u si vous passez la valeur null dans parse(null) il sera converti en date et heure actuelles

6 votes

Correct... et ce n'est pas bon pour certains cas ! Alors faites attention !

113voto

HorecioDias Points 341

Dans votre ensemble de modèles :

protected $dates = ['name_field'];

après selon vous :

{{ $user->from_date->format('d/m/Y') }}

travaux

6 votes

Je pense que c'est la façon la plus "laravel" de faire cela, donc cela devrait être marqué comme la bonne réponse.

1 votes

Je suis d'accord aussi, c'est la meilleure façon

0 votes

Ça ne marche pas pour moi. J'ai déjà utilisé le type de colonne datetime et le type de colonne timestamp, mais l'erreur persiste. Call to a member function format() on null

42voto

Marek Skiba Points 1161

Vous pouvez vérifier Date Mutators : https://laravel.com/docs/5.3/eloquent-mutators#date-mutators

Vous devez définir dans votre User colonne modèle from_date sur $dates et vous pouvez ensuite changer le format dans $dateFormat

Une autre option est également de mettre cette méthode à votre User modèle :

public function getFromDateAttribute($value) {
    return \Carbon\Carbon::parse($value)->format('d-m-Y');
}

et ensuite dans la vue si vous exécutez {{ $user->from_date }} vous verrez le format que vous voulez.

0 votes

Je suis d'accord pour dire que c'est la meilleure solution pour laravel

1 votes

Le seul inconvénient est qu'il renvoie une chaîne de caractères à la vue ; ainsi, si vous souhaitez afficher différents formats de date dans la même vue, vous devrez reparser la date avec Carbon.

0 votes

Désolé, mais s'agit-il d'un mutateur puisqu'il utilise getFromDateAttribute au lieu de setFromDateAttribute ? D'après ce que je sais, le mutateur utilise set et l'accesseur utilise get.

15voto

Umar Tariq Points 444

Utilisation facile de la date dans le modèle de lame Carbone de cette façon

{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X