Ich möchte das Datumsformat ändern, das aus der Datenbank abgerufen wird. Jetzt habe ich den 01.10.2016. {{$user->from_date}}
Ich möchte das Format 'dmy' in Laravel 5.3 ändern
{{ $user->from_date->format('d/m/Y')}}
Versuche dies:
date('d-m-Y', strtotime($user->from_date));
Das Datum wird in d-m-Y
das von Ihnen angegebene Format konvertiert .
Hinweis: Diese Lösung ist eine allgemeine Lösung, die für PHP und alle seine Frameworks funktioniert. Probieren Sie für eine Laravel-spezifische Methode die von Hamelraj bereitgestellte Lösung aus .
from_date
.In Laravel verwenden Sie Carbon, es ist gut
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
quelle
null
?parse(null)
, wird dieser als aktuelles Datum und Uhrzeit konvertiertIn Ihrem Modellset:
protected $dates = ['name_field'];
nach Ihrer Ansicht nach:
{{ $user->from_date->format('d/m/Y') }}
funktioniert
quelle
Call to a member function format() on null
Sie können Folgendes überprüfen
Date Mutators
: https://laravel.com/docs/5.3/eloquent-mutators#date-mutatorsSie müssen in Ihrer
User
Modellspaltefrom_date
ein$dates
Array festlegen und können dann das Format in ändern$dateFormat
Die andere Option besteht darin, diese Methode in Ihr
User
Modell aufzunehmen:public function getFromDateAttribute($value) { return \Carbon\Carbon::parse($value)->format('d-m-Y'); }
und dann in der Ansicht, wenn Sie ausführen
{{ $user->from_date }}
, sehen Sie das gewünschte Format.quelle
Einfach zu verwendendes Datum in der Klingenvorlage Verwenden Sie Carbon auf diese Weise
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
quelle
Es gibt drei Möglichkeiten:
1) Verwenden des Laravel-Modells
$user = \App\User::find(1); $newDateFormat = $user->created_at->format('d/m/Y'); dd($newDateFormat);
2) Verwenden von PHP strtotime
$user = \App\User::find(1); $newDateFormat2 = date('d/m/Y', strtotime($user->created_at)); dd($newDateFormat2);
3) Verwendung von Kohlenstoff
$user = \App\User::find(1); $newDateFormat3 = \Carbon\Carbon::parse($user->created_at)->format('d/m/Y'); dd($newDateFormat3);
quelle
Methode Eins:
Die Verwendung der
strtotime()
to-Zeit ist das beste Format, um das Datum in das angegebene Format zu ändern.strtotime()
- Analysieren Sie alle englischen Text-Datums- / Uhrzeitbeschreibungen in einem Unix-ZeitstempelDie Funktion erwartet eine Zeichenfolge mit einem englischen Datumsformat und versucht, dieses Format in einen Unix-Zeitstempel (die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC) relativ zum jetzt angegebenen Zeitstempel oder zu analysieren die aktuelle Zeit, wenn jetzt nicht geliefert wird.
Beispiel:
<?php $timestamp = strtotime( "February 26, 2007" ); print date('Y-m-d', $timestamp ); ?>
Ausgabe:
2007-02-26
Methode Zwei:
date_format()
- Geben Sie ein neues DateTime-Objekt zurück und formatieren Sie das Datum:<?php $date=date_create("2013-03-15"); echo date_format($date,"Y/m/d H:i:s"); ?>
Ausgabe:
2013/03/15 00:00:00
quelle
Sie können verwenden
Carbon::createFromTimestamp
KLINGE
{{ \Carbon\Carbon::createFromTimestamp(strtotime($user->from_date))->format('d-m-Y')}}
quelle
Ich hatte ein ähnliches Problem, ich wollte das Format ändern, aber ich wollte auch die Flexibilität, das Format auch in der Blade-Template-Engine ändern zu können.
Ich habe mein Modell daher wie folgt eingerichtet:
<?php namespace App; use Illuminate\Database\Eloquent\Model; \Carbon\Carbon::setToStringFormat('d-m-Y'); class User extends Model { protected $dates = [ 'from_date', ]; }
Das
setToStringFormat
legt alle Daten fest, um dieses Format für dieses Modell zu verwenden.Dies hat für mich den Vorteil, dass ich das gewünschte Format ohne den Mutator haben könnte, da das Attribut mit dem Mutator als Zeichenfolge zurückgegeben wird, was bedeutet, dass ich in der Blade-Vorlage so etwas schreiben müsste, wenn ich wollte Ändern Sie das Format in der Vorlage:
{{ date('Y', strtotime($user->from_date)) }}
Welches ist nicht sehr sauber.
Stattdessen wird das Attribut weiterhin als Carbon-Instanz zurückgegeben, jedoch zuerst im gewünschten Format.
Das bedeutet, dass ich in die Vorlage den folgenden saubereren Code schreiben könnte:
{{ $user->from_date->format('Y') }}
Ich kann nicht nur die Carbon-Instanz neu formatieren, sondern auch verschiedene Carbon-Methoden für das Attribut in der Vorlage aufrufen.
Es gibt wahrscheinlich ein Versehen bei diesem Ansatz; Ich wette, es ist keine gute Idee, das Zeichenfolgenformat oben im Modell anzugeben, falls es andere Skripte betrifft.
Nach dem, was ich bisher gesehen habe, ist das nicht geschehen. Es wurde nur der Standard-Carbon nur für dieses Modell geändert.In diesem Fall kann es sinnvoll sein, das Carbon-Format auf das zurückzusetzen, was es ursprünglich am Ende des Modellskripts war. Dies ist eine gute Idee, aber es würde funktionieren, wenn jedes Modell ein eigenes Format hätte.
Wenn Sie dagegen für jedes Modell das gleiche Format haben, verwenden Sie stattdessen Ihren AppServiceProvider. Das würde den Code nur übersichtlicher und einfacher zu warten halten.
quelle
Manchmal funktioniert das Ändern des Datumsformats nicht richtig, insbesondere in Laravel. In diesem Fall ist es besser, Folgendes zu verwenden:
$date1 = strtr($_REQUEST['date'], '/', '-'); echo date('Y-m-d', strtotime($date1));
Dann können Sie Fehler wie "1970-01-01" vermeiden!
quelle
m/d/y
oderd-m-y
werden durch Betrachten des Trennzeichens zwischen den verschiedenen Komponenten eindeutig definiert: Wenn das Trennzeichen ein Schrägstrich ist(/)
, wird der Amerikanerm/d/y
angenommen; Wenn das Trennzeichen ein Bindestrich(-)
oder ein Punkt ist(.)
, wird das europäisched-m-y
Format angenommen. Wenn das Jahr jedoch in einem zweistelligen Format angegeben wird und das Trennzeichen ein Bindestrich ist(-)
, wird die Datumszeichenfolge als analysierty-m-d
. php.net/manual/en/function.strtotime.phpIn Laravel können Sie eine Funktion in app / Helper / helper.php hinzufügen
function formatDate($date = '', $format = 'Y-m-d'){ if($date == '' || $date == null) return; return date($format,strtotime($date)); }
Rufen Sie diese Funktion auf einem solchen Controller auf
$start_date = formatDate($start_date,'Y-m-d');
Ich hoffe es hilft!
quelle