Ich möchte eine Eingabe haben, in der Sie eine Zeit im EU-Format wie 12:00 oder 21:34 eingeben. (hh: mm) Wie mache ich das?
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('arena');
$table->date("h,i"('beginn'));
$table->timestamps();
});
Das habe ich, aber es ist offensichtlich falsch.
4 Antworten
In Laravel 5.6 haben Sie diese neue Funktion, mit der Sie Ihren Zeitstempel umwandeln können, sodass Ihre Migration so aussehen sollte
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('arena');
$table->timestamp("begin");
$table->timestamps();
});
Und in Ihrem Post
Modell können Sie dies einfach tun:
protected $casts = [
'begin' => 'date:hh:mm'
];
Bearbeiten
Wenn Sie Laravel 5.6 NICHT verwenden, können Sie Accessors & Mutators um Daten beim Einstellen in der Datenbank oder beim Abrufen aus der Datenbank einfach zu bearbeiten, damit Sie so etwas tun können
public function getBeginAtAttribute($date)
{
return Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $date)->format('hh:mm');
}
Und jedes Mal, wenn Sie es in Ihrem Blade oder wo immer so wiedergeben {{ $post->begin }}
, ändert es automatisch das Format für Sie.
Ich hoffe, das hilft.
Sie können dies mit Carbon tun, das standardmäßig in Laravel enthalten ist:
- Setze eine Variable mit der aktuellen Zeit
$date = Carbon::now()
- Stellen Sie die Stunde ein, zum Beispiel 22
$date->hour = 22
- Stellen Sie Minuten ein, zum Beispiel 54
$date->minutes = 54
- Zum Schluss setzen Sie
$table->date($date)
Da die Laravel-Migration auf der traditionellen SQL-Konvention basiert, können Sie das Format nicht mithilfe der Migration ändern. Dies liegt daran, dass SQL datetime selbst als JJJJ-MM-TT HH: MM: SS formatiert ist. Sie können jedoch das Carbon-Datums- / Uhrzeitformat verwenden, um das gespeicherte Datum, die gespeicherte Uhrzeit oder beides nach Ihren Wünschen anzuzeigen. Weitere Informationen zu Carbon finden Sie unter diesem Link . Offizieller Link hier
Sie können $table->times('field_name');
verwenden
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('arena');
$table->times("begin");
$table->timestamps();
});
Verwandte Fragen
Neue Fragen
php
PHP ist eine weit verbreitete, übergeordnete, dynamische, objektorientierte und interpretierte Skriptsprache, die hauptsächlich für die serverseitige Webentwicklung entwickelt wurde. Wird für Fragen zur PHP-Sprache verwendet.