


Beispiele für die Verwendung des Datums- und Zeitverarbeitungspakets Carbon in Laravel
Bei der Verarbeitung von Datums- und Uhrzeitangaben sind viele Dinge zu beachten, z. B. Datumsformat, Zeitzone, Schaltjahr und Monate mit unterschiedlichen Tagen. Es ist zu leicht, selbst Fehler zu machen. Der folgende Artikel stellt Ihnen hauptsächlich das Datum vor Zeitverarbeitung in Laravel. Freunde, die die einfache Verwendung von Carbon benötigen, können darauf zurückgreifen.
Vorwort
Wir alle müssen uns beim Schreiben von PHP-Anwendungen oft mit Datums- und Uhrzeitangaben auseinandersetzen. In diesem Artikel erfahren Sie mehr über Carbon. geerbt von einer API-Erweiterung der PHP-DateTime-Klasse, die die Arbeit mit Datums- und Uhrzeitangaben vereinfacht.
Die in Laravel standardmäßig verwendete Zeitverarbeitungsklasse ist Carbon.
<?php namespace Carbon; class Carbon extends \DateTime { // code here }
Sie können den oben deklarierten Codeausschnitt in der Carbon-Klasse im Carbon-Namespace sehen.
Installation
Carbon kann über Composer installiert werden:
composer require nesbot/carbon
PS: Da das Laravel-Projekt dieses Paket standardmäßig installiert hat, besteht keine Notwendigkeit, den obigen Befehl erneut auszuführen.
Um
zu verwenden, müssen Sie Carbon über den Namespace importieren, um es verwenden zu können, ohne jedes Mal den vollständigen Namen anzugeben.
use Carbon\Carbon;
Erhalten Sie die aktuelle Uhrzeit
Kann mit der Methode now() verwendet werden, um die aktuelle Uhrzeit abzurufen Datum und Uhrzeit. Wenn Sie kein Argument angeben, wird die Zeitzone aus der PHP-Konfiguration verwendet:
<?php echo Carbon::now(); //2016-10-14 20:21:20 ?>
Wenn Sie eine andere Zeitzone verwenden möchten, benötigen Sie um eine gültige Zeitzone als Parameter zu übergeben:
// 直接使用字符串 echo Carbon::now('Europe/London'); //2016-10-14 20:21:20 // 或者 echo Carbon::now(new DateTimeZone('Europe/London'));
Zusätzlich zu now()
sind statische Funktionen wie today()
, tomorrow()
und yesterday()
vorhanden Ihre Zeiten sind jedoch 00:00:00:
echo Carbon::now(); // 2016-10-14 15:18:34 echo Carbon::today(); // 2016-10-14 00:00:00 echo Carbon::tomorrow('Europe/London'); // 2016-10-14 00:00:00 echo Carbon::yesterday(); // 2016-10-14 00:00:00
Das obige Ausgabeergebnis ist tatsächlich ein Datums- und Zeitobjekt vom Typ Carbon:
Carbon {#179 ▼ +"date": "2016-06-14 00:00:00.000000" +"timezone_type": 3 +"timezone": "UTC" }
Um das Datum im String-Typ zu erhalten, können Sie den folgenden Code verwenden:
echo Carbon::today()->toDateTimeString(); echo Carbon::yesterday()->toDateTimeString(); echo Carbon::tomorrow()->toDateTimeString();
Datumstyp in Zeichenkette konvertieren
Wie oben erwähnt, gibt die Methode von Carbon standardmäßig ein Datums- und Zeitobjekt zurück. Obwohl es sich um ein Objekt handelt, können Sie Echo aufgrund der magischen Methode __toString direkt zur Ausgabe des Ergebnisses verwenden. Wenn Sie es jedoch in eine Zeichenfolge konvertieren möchten, können Sie die Methode toDateString oder toDateTimeString verwenden:
echo Carbon::now()->toDateString(); //2016-10-14 echo Carbon::now()->toDateTimeString(); //2016-10-14 20:22:50
Datumsanalyse
Sie können auch die Parse-Methode verwenden, um Datumsangaben beliebiger Reihenfolge und Art zu analysieren (das Ergebnis ist ein Datetime-Objekt vom Typ Carbon):
echo Carbon::parse('2016-10-15')->toDateTimeString(); //2016-10-15 00:00:00 echo Carbon::parse('2016-10-15')->toDateTimeString(); //2016-10-15 00:00:00 echo Carbon::parse('2016-10-15 00:10:25')->toDateTimeString(); //2016-10-15 00:10:25 echo Carbon::parse('today')->toDateTimeString(); //2016-10-15 00:00:00 echo Carbon::parse('yesterday')->toDateTimeString(); //2016-10-14 00:00:00 echo Carbon::parse('tomorrow')->toDateTimeString(); //2016-10-16 00:00:00 echo Carbon::parse('2 days ago')->toDateTimeString(); //2016-10-13 20:49:53 echo Carbon::parse('+3 days')->toDateTimeString(); //2016-10-18 20:49:53 echo Carbon::parse('+2 weeks')->toDateTimeString(); //2016-10-29 20:49:53 echo Carbon::parse('+4 months')->toDateTimeString(); //2017-02-15 20:49:53 echo Carbon::parse('-1 year')->toDateTimeString(); //2015-10-15 20:49:53 echo Carbon::parse('next wednesday')->toDateTimeString(); //2016-10-19 00:00:00 echo Carbon::parse('last friday')->toDateTimeString(); //2016-10-14 00:00:00
Ein Datum konstruieren
Sie können das Datum auch anhand separater Jahr-, Monats- und Tagesangaben konstruieren:
$year = '2015'; $month = '04'; $day = '12'; echo Carbon::createFromDate($year, $month, $day); //2015-04-12 20:55:59 $hour = '02'; $minute = '15': $second = '30'; echo Carbon::create($year, $month, $day, $hour, $minute, $second); //2015-04-12 02:15:30 echo Carbon::createFromDate(null, 12, 25); // 年默认为当前年份
Zusätzlich können Sie als letzten Parameter eine gültige Zeitzone übergeben.
Datumsoperationen
Datumsoperationen können durch Addieren (Erhöhen) oder Subtrahieren (Subtrahieren) durchgeführt werden, um mit den zu addierenden oder subtrahierenden Einheiten Schritt zu halten. Wenn Sie beispielsweise einem Datum eine bestimmte Anzahl von Tagen hinzufügen möchten, können Sie die Methode addDays verwenden. Darüber hinaus steht eine Änderungsmethode zur Verfügung. Das Parameterformat ist + oder – gefolgt vom Wert und der Einheit. Wenn Sie also ein Jahr zum aktuellen Datum hinzufügen möchten, können Sie +1 Jahr angeben:
echo Carbon::now()->addDays(25); //2016-11-09 14:00:01 echo Carbon::now()->addWeeks(3); //2016-11-05 14:00:01 echo Carbon::now()->addHours(25); //2016-10-16 15:00:01 echo Carbon::now()->subHours(2); //2016-10-15 12:00:01 echo Carbon::now()->addHours(2)->addMinutes(12); //2016-10-15 16:12:01 echo Carbon::now()->modify('+15 days'); //2016-10-30 14:00:01 echo Carbon::now()->modify('-2 days'); //2016-10-13 14:00:01
Datumsvergleich
In Carbon können Sie die folgenden Methoden verwenden, um Datumsangaben zu vergleichen:
min – gibt das Mindestdatum zurück.
max – Gibt das maximale Datum zurück.
eq – Bestimmt, ob zwei Daten gleich sind.
gt – Bestimmt, ob das erste Datum größer als das zweite Datum ist.
lt – Bestimmt, ob das erste Datum kleiner als das zweite Datum ist.
gte – Bestimmt, ob das erste Datum größer oder gleich dem zweiten Datum ist.
lte – Bestimmt, ob das erste Datum kleiner oder gleich dem zweiten Datum ist.
echo Carbon::now()->tzName; // America/Toronto $first = Carbon::create(2012, 9, 5, 23, 26, 11); $second = Carbon::create(2012, 9, 5, 20, 26, 11, 'America/Vancouver'); echo $first->toDateTimeString(); // 2012-09-05 23:26:11 echo $first->tzName; // America/Toronto echo $second->toDateTimeString(); // 2012-09-05 20:26:11 echo $second->tzName; // America/Vancouver var_dump($first->eq($second)); // bool(true) var_dump($first->ne($second)); // bool(false) var_dump($first->gt($second)); // bool(false) var_dump($first->gte($second)); // bool(true) var_dump($first->lt($second)); // bool(false) var_dump($first->lte($second)); // bool(true) $first->setDateTime(2012, 1, 1, 0, 0, 0); $second->setDateTime(2012, 1, 1, 0, 0, 0); // Remember tz is 'America/Vancouver' var_dump($first->eq($second)); // bool(false) var_dump($first->ne($second)); // bool(true) var_dump($first->gt($second)); // bool(false) var_dump($first->gte($second)); // bool(false) var_dump($first->lt($second)); // bool(true) var_dump($first->lte($second)); // bool(true)
Um festzustellen, ob ein Datum zwischen zwei Datumsangaben liegt, können Sie die Methode between() verwenden. Der dritte optionale Parameter gibt an, ob das Der Vergleich kann gleich sein, der Standardwert ist wahr:
$first = Carbon::create(2012, 9, 5, 1); $second = Carbon::create(2012, 9, 5, 5); var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second)); // bool(true) var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second)); // bool(true) var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false)); // bool(false)
Darüber hinaus werden einige Hilfsmethoden bereitgestellt, deren Bedeutung Sie anhand ihrer Namen verstehen können:
$dt = Carbon::now(); $dt->isWeekday(); $dt->isWeekend(); $dt->isYesterday(); $dt->isToday(); $dt->isTomorrow(); $dt->isFuture(); $dt->isPast(); $dt->isLeapYear(); $dt->isSameDay(Carbon::now()); $born = Carbon::createFromDate(1987, 4, 23); $noCake = Carbon::createFromDate(2014, 9, 26); $yesCake = Carbon::createFromDate(2014, 4, 23); $overTheHill = Carbon::now()->subYears(50); var_dump($born->isBirthday($noCake)); // bool(false) var_dump($born->isBirthday($yesCake)); // bool(true) var_dump($overTheHill->isBirthday()); // bool(true) -> default compare it to today!
diffForHumans
„Vor einem Monat“ ist leichter zu lesen als „vor 30 Tagen“, was viele Datumsbibliotheken angeben do Diese allgemeine Funktion wird bereitgestellt. Es gibt vier Möglichkeiten:
1. Wenn die verglichene Zeit die aktuelle Standardzeit überschreitet
Vor 1 Tag
Vor 5 Monaten
2. Beim Vergleich der zukünftigen Zeit mit der aktuellen Standardzeit
in 1 Stunde
in 5 Monaten
3. Wenn der verglichene Wert einen anderen Wert überschreitet
vor 1 Stunde
vor 5 Monaten
4、当比较的值在另一个值之后
1小时后
5月后
你可以把第二个参数设置为 true 来删除“前”、“距现在”等修饰语:diffForHumans(Carbon $other, true)
。
echo Carbon::now()->subDays(5)->diffForHumans(); // 5天前 echo Carbon::now()->diffForHumans(Carbon::now()->subYear()); // 1年后 $dt = Carbon::createFromDate(2011, 8, 1); echo $dt->diffForHumans($dt->copy()->addMonth()); // 1月前 echo $dt->diffForHumans($dt->copy()->subMonth()); // 11月后 echo Carbon::now()->addSeconds(5)->diffForHumans(); // 5秒距现在 echo Carbon::now()->subDays(24)->diffForHumans(); // 3周前 echo Carbon::now()->subDays(24)->diffForHumans(null, true); // 3周
本地化
可以在 app/Providers/AppServiceProvider.php 的 boot()
方法中添加下面的代码来设置全局本地化:
public function boot() { \Carbon\Carbon::setLocale('zh'); }
设置好之后,在输出时间的地方调用:
$article->created_at->diffForHumans();
类似的格式即可。
更多 Carbon 操作,可查看文档。
总结
Das obige ist der detaillierte Inhalt vonBeispiele für die Verwendung des Datums- und Zeitverarbeitungspakets Carbon in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die neuesten Versionen von Laravel 9 und CodeIgniter 4 bieten aktualisierte Funktionen und Verbesserungen. Laravel9 übernimmt die MVC-Architektur und bietet Funktionen wie Datenbankmigration, Authentifizierung und Template-Engine. CodeIgniter4 nutzt die HMVC-Architektur, um Routing, ORM und Caching bereitzustellen. In Bezug auf die Leistung sorgen das auf Dienstanbietern basierende Designmuster von Laravel9 und das leichte Framework von CodeIgniter4 für eine hervorragende Leistung. In praktischen Anwendungen eignet sich Laravel9 für komplexe Projekte, die Flexibilität und leistungsstarke Funktionen erfordern, während CodeIgniter4 für schnelle Entwicklung und kleine Anwendungen geeignet ist.

Vergleichen Sie die Datenverarbeitungsfunktionen von Laravel und CodeIgniter: ORM: Laravel verwendet EloquentORM, das eine relationale Klassen-Objekt-Zuordnung bereitstellt, während CodeIgniter ActiveRecord verwendet, um das Datenbankmodell als Unterklasse von PHP-Klassen darzustellen. Abfrage-Builder: Laravel verfügt über eine flexible verkettete Abfrage-API, während der Abfrage-Builder von CodeIgniter einfacher und Array-basiert ist. Datenvalidierung: Laravel bietet eine Validator-Klasse, die benutzerdefinierte Validierungsregeln unterstützt, während CodeIgniter über weniger integrierte Validierungsfunktionen verfügt und eine manuelle Codierung benutzerdefinierter Regeln erfordert. Praxisfall: Beispiel einer Benutzerregistrierung zeigt Lar

Für Anfänger bietet CodeIgniter eine sanftere Lernkurve und weniger Funktionen, deckt aber die Grundbedürfnisse ab. Laravel bietet einen größeren Funktionsumfang, weist jedoch eine etwas steilere Lernkurve auf. In Bezug auf die Leistung schneiden sowohl Laravel als auch CodeIgniter gut ab. Laravel verfügt über eine umfangreichere Dokumentation und aktive Community-Unterstützung, während CodeIgniter einfacher und leichtgewichtiger ist und über starke Sicherheitsfunktionen verfügt. Im praktischen Fall der Erstellung einer Blogging-Anwendung vereinfacht EloquentORM von Laravel die Datenmanipulation, während CodeIgniter mehr manuelle Konfiguration erfordert.

Laravel – Artisan Commands – Laravel 5.7 bietet eine neue Möglichkeit, neue Befehle zu behandeln und zu testen. Es enthält eine neue Funktion zum Testen von Handwerkerbefehlen und die Demonstration wird unten erwähnt?

Bei der Auswahl eines Frameworks für große Projekte haben Laravel und CodeIgniter jeweils ihre eigenen Vorteile. Laravel ist für Anwendungen auf Unternehmensebene konzipiert und bietet modularen Aufbau, Abhängigkeitsinjektion und einen leistungsstarken Funktionsumfang. CodeIgniter ist ein leichtes Framework, das sich eher für kleine bis mittelgroße Projekte eignet und Wert auf Geschwindigkeit und Benutzerfreundlichkeit legt. Für große Projekte mit komplexen Anforderungen und einer großen Anzahl von Benutzern sind die Leistung und Skalierbarkeit von Laravel besser geeignet. Für einfache Projekte oder Situationen mit begrenzten Ressourcen sind die leichten und schnellen Entwicklungsfunktionen von CodeIgniter idealer.

Für kleine Projekte eignet sich Laravel, für größere Projekte, die starke Funktionalität und Sicherheit erfordern. CodeIgniter eignet sich für sehr kleine Projekte, die geringes Gewicht und Benutzerfreundlichkeit erfordern.

Vergleichen Sie Laravel's Blade und die Twig-Vorlagen-Engine von CodeIgniter und wählen Sie je nach Projektanforderungen und persönlichen Vorlieben: Blade basiert auf der MVC-Syntax, die eine gute Codeorganisation und Vorlagenvererbung fördert. Twig ist eine Bibliothek eines Drittanbieters, die flexible Syntax, leistungsstarke Filter, erweiterten Support und eine Sicherheits-Sandbox bietet.

Laravel – Artisan Console – Das Laravel-Framework bietet drei Haupttools für die Interaktion über die Befehlszeile, nämlich Artisan, Ticker und REPL. In diesem Kapitel wird Artisan ausführlich erläutert.
