Je veux changer le format de date qui est extrait de la base de données. maintenant j'ai 2016-10-01 {{$user->from_date}}
.Je veux changer le format 'dmy' dans laravel 5.3
{{ $user->from_date->format('d/m/Y')}}
Essaye ça:
date('d-m-Y', strtotime($user->from_date));
Il convertira la date dans d-m-Y
ou quel que soit le format que vous avez donné.
Remarque: 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 .
from_date
colonne d' affichage .À Laravel, utilisez Carbon c'est bon
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
la source
null
?parse(null)
il sera converti en heure actuelleDans votre ensemble de modèles:
protected $dates = ['name_field'];
après à votre avis:
{{ $user->from_date->format('d/m/Y') }}
travaux
la source
Call to a member function format() on null
Vous pouvez vérifier
Date Mutators
: https://laravel.com/docs/5.3/eloquent-mutators#date-mutatorsVous devez définir dans votre
User
colonne de modèlefrom_date
dans$dates
tableau, puis vous pouvez changer le format dans$dateFormat
L'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 puis en vue si vous exécutez,
{{ $user->from_date }}
vous verrez le format que vous voulez.la source
La date facile à utiliser dans le modèle de lame utilise le carbone de cette façon
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
la source
Vous pouvez procéder de 3 façons:
1) Utilisation du modèle Laravel
$user = \App\User::find(1); $newDateFormat = $user->created_at->format('d/m/Y'); dd($newDateFormat);
2) Utilisation de PHP strtotime
$user = \App\User::find(1); $newDateFormat2 = date('d/m/Y', strtotime($user->created_at)); dd($newDateFormat2);
3) Utilisation du carbone
$user = \App\User::find(1); $newDateFormat3 = \Carbon\Carbon::parse($user->created_at)->format('d/m/Y'); dd($newDateFormat3);
la source
Première méthode:
En utilisant le
strtotime()
heure à est le meilleur format pour changer la date au format donné.strtotime()
- Analyser toute description datetime textuelle en anglais dans un horodatage UnixLa fonction s'attend à recevoir une chaîne contenant un format de date anglais et essaiera d'analyser ce format en 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 ); ?>
Production:
2007-02-26
Deuxième méthode:
date_format()
- Renvoyez un nouvel objet DateTime, puis formatez la date:<?php $date=date_create("2013-03-15"); echo date_format($date,"Y/m/d H:i:s"); ?>
Production:
2013/03/15 00:00:00
la source
Vous pouvez utiliser
Carbon::createFromTimestamp
LAME
{{ \Carbon\Carbon::createFromTimestamp(strtotime($user->from_date))->format('d-m-Y')}}
la source
J'ai eu un problème similaire, je voulais changer le format, mais je voulais aussi la flexibilité de pouvoir changer le format dans le moteur de modèle de lame aussi.
Par conséquent, je configure 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', ]; }
Le
setToStringFormat
définira toutes les dates pour utiliser ce format pour ce modèle.L'avantage 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 dans le modèle de lame, je devrais écrire quelque chose comme ça si je voulais changer le format dans le modèle:
{{ 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, plus propre:
{{ $user->from_date->format('Y') }}
En plus de pouvoir reformater l'instance Carbon, je peux également appeler diverses méthodes Carbon sur l'attribut du modèle.
Il y a probablement un oubli de 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ù cela affecterait d'autres scripts.
D'après ce que j'ai vu jusqu'à présent, cela ne s'est pas produit. Il n'a changé que le carbone par défaut pour ce modèle uniquement.Dans ce cas, cela pourrait être un bon retour au format Carbon à ce qu'il était à l'origine au bas du script du modèle. C'est une idée corsée, mais cela fonctionnerait pour que chaque modèle ait son propre format.
Au contraire, si vous avez le même format pour chaque modèle, alors dans votre AppServiceProvider à la place. Cela permettrait simplement de garder le code plus net et plus facile à maintenir.
la source
Parfois, changer le format de la date ne fonctionne pas correctement, en particulier dans Laravel. Donc dans ce cas, il vaut mieux utiliser:
$date1 = strtr($_REQUEST['date'], '/', '-'); echo date('Y-m-d', strtotime($date1));
Ensuite, vous pouvez éviter une erreur comme "1970-01-01"!
la source
m/d/y
oud-m-y
sont clarifiées en regardant le séparateur entre les différents composants: si le séparateur est une barre oblique(/)
, alors l'Américainm/d/y
est supposé; alors que si le séparateur est un tiret(-)
ou un point(.)
, alors led-m-y
format européen est supposé. Si, cependant, l'année est donnée dans un format à deux chiffres et que le séparateur est un tiret(-)
, la chaîne de date est analysée commey-m-d
. php.net/manual/en/function.strtotime.phpDans 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 cela aide!
la source