web-dev-qa-db-fra.com

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

Je veux changer le format de date extrait de la base de données . Maintenant j'ai le 2016-10-01{{$user->from_date}} .Je veux changer le format 'd-m-y' dans laravel 5.3

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

Essaye ça:

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

Il convertira la date au format d-m-Y.

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

62
Mayank Pandeyz

À Laravel, utilisez Carbone c'est bon 

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

Dans votre ensemble de modèles:

protected $dates = ['name_field'];

après à votre avis:

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

travaux

29
HorecioDias

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

Vous devez définir votre colonne de modèle Userfrom_date dans le tableau $dates, puis modifier le format dans $dateFormat

L’autre option consiste également à appliquer cette méthode à votre modèle User:

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

et ensuite, si vous exécutez {{ $user->from_date }}, vous verrez le format souhaité.

28
Marek Skiba

Utilisation facile de la date dans le gabarit de la lame Carbon de cette façon

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

Première méthode:

L'utilisation de strtotime() to time est le meilleur format pour changer la date en un format donné.

strtotime() - Analyse de la description textuelle date/heure en anglais dans un horodatage Unix

La fonction s'attend à recevoir une chaîne contenant un format de date anglais et essaiera d'analyser ce format dans un horodatage Unix (le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC), par rapport à l'horodatage donné maintenant, ou l'heure actuelle si maintenant n'est pas fournie. 

Exemple:

<?php
$timestamp = strtotime( "February 26, 2007" );  
print date('Y-m-d', $timestamp );
?>

Sortie:

2007-02-26

Méthode deux:

date_format() - Retourne un nouvel objet DateTime, puis formate la date:

<?php
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");
?>

Sortie:

 2013/03/15 00:00:00 
4
Naresh Kumar .P

J'avais un problème similaire, je voulais changer le format, mais je voulais aussi pouvoir changer le format dans le moteur de template de lame également.

J'ai donc défini mon modèle comme suit:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

\Carbon\Carbon::setToStringFormat('d-m-Y');

class User extends Model
{
    protected $dates = [
        'from_date',
    ];
}

La setToStringFormat définira toutes les dates d'utilisation de ce format pour ce modèle.
L'avantage de ceci pour moi est que je pourrais avoir le format que je voulais sans le mutateur, car avec le mutateur, l'attribut est renvoyé sous forme de chaîne, ce qui signifie que je devrais écrire quelque chose comme ceci dans le modèle de lame si Je voulais changer le format dans le template:

{{ date('Y', strtotime($user->from_date)) }}

Ce qui n'est pas très propre.

Au lieu de cela, l'attribut est toujours renvoyé en tant qu'instance Carbon, mais il est d'abord renvoyé au format souhaité.
Cela signifie que dans le modèle, je pourrais écrire le code suivant, le nettoyeur:

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

En plus de pouvoir reformater l'instance Carbon, je peux également appeler différentes méthodes Carbon sur l'attribut du modèle.

Il y a probablement un oubli dans cette approche; Je parie que ce n'est pas une bonne idée de spécifier le format de chaîne en haut du modèle au cas où il affecte d'autres scripts. D'après ce que j'ai vu jusqu'à présent, cela ne s'est pas produit. Il a seulement changé le carbone par défaut pour ce modèle uniquement.

Dans ce cas, il peut être judicieux de redéfinir le format Carbon sur ce qu’il était au début du script de modèle. C'est une idée complexe, mais il serait utile que chaque modèle ait son propre format.
Contrairement, si vous avez le même format pour chaque modèle, utilisez plutôt AppServiceProvider. Cela garderait simplement le code plus propre et plus facile à maintenir.

2
JustCarty

Vous pouvez utiliser Carbon::createFromTimestamp

LAME

{{ \Carbon\Carbon::createFromTimestamp($user->from_date)->format('d-m-Y')}}
1
kosta

Dans Laravel, vous pouvez ajouter une fonction dans app/Helper/helper.php comme

function formatDate($date = '', $format = 'Y-m-d'){
    if($date == '' || $date == null)
        return;

    return date($format,strtotime($date));
}

Et appelez cette fonction sur n'importe quel contrôleur comme celui-ci

$start_date = formatDate($start_date,'Y-m-d');

J'espère que ça aide!

0
Prasant Kumar

Parfois, changer le format de la date ne fonctionne pas correctement, surtout à Laravel. Donc, dans ce cas, il vaut mieux utiliser:

$date1 = strtr($_REQUEST['date'], '/', '-');
echo date('Y-m-d', strtotime($date1));

Ensuite, vous pouvez éviter les erreurs telles que "1970-01-01"!

0
Honest Knight

Il y a 3 façons de faire:

1) Utilisation du modèle de Laravel

$user = \App\User::find(1);

$newDateFormat = $user->created_at->format('d/m/Y');

dd($newDateFormat);

2) Utiliser PHP strtotime

$user = \App\User::find(1);

$newDateFormat2 = date('d/m/Y', strtotime($user->created_at));

dd($newDateFormat2);

3) Utilisation de carbone

$user = \App\User::find(1);

$newDateFormat3 = \Carbon\Carbon::parse($user->created_at)->format('d/m/Y');

dd($newDateFormat3);
0
Dibyendu Mitra Roy