


Über die Verwendung von Carbon, einem Datums- und Zeitverarbeitungspaket 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 führt Sie hauptsächlich in das Datum ein und Zeitverarbeitung in Laravel, 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
Sie können das aktuelle Datum und die aktuelle Uhrzeit mit dem Now( abrufen) ) Methode. 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, können Sie dies tun müssen eine gültige Zeitzone übergeben Als Parameter:
// 直接使用字符串 echo Carbon::now('Europe/London'); //2016-10-14 20:21:20 // 或者 echo Carbon::now(new DateTimeZone('Europe/London'));
Zusätzlich zu now()
, statische Funktionen wie today()
, tomorrow()
und yesterday()
werden jedoch ebenfalls bereitgestellt. Ihre Zeit ist jedoch alle 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 Datum und eine Uhrzeit vom Typ Carbon Objekt:
Carbon {#179 ▼ +"date": "2016-06-14 00:00:00.000000" +"timezone_type": 3 +"timezone": "UTC" }
Um das Datum als String zu erhalten, können Sie den folgenden Code verwenden:
echo Carbon::today()->toDateTimeString(); echo Carbon::yesterday()->toDateTimeString(); echo Carbon::tomorrow()->toDateTimeString();
Datumstyp in Zeichenfolge 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
Datumsangaben konstruieren
Sie können Datumsangaben auch anhand separater Jahr-, Monats- und Tagesangaben erstellen:
$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); // 年默认为当前年份
Außerdem können Sie als letztes Argument 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 übergeben:
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, die dritte ist optional Der Parameter gibt an, ob der Vergleich gleich sein kann. 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“. ", viele Datumsbibliotheken bieten diese allgemeine Funktion. Nachdem das Datum analysiert wurde, gibt es 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 überschreitet den anderen A-Wert
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();
类似的格式即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
如何解决PHP基于DateTime类Unix时间戳与日期互转的问题
关于laravel 5.1下php artisan migrate的使用
Das obige ist der detaillierte Inhalt vonÜber die Verwendung von Carbon, einem Datums- und Zeitverarbeitungspaket 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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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





Methode zum Abholen des Rücksendecode, wenn das Senden von Laravel -E -Mails fehlschlägt. Wenn Sie Laravel zur Entwicklung von Anwendungen verwenden, stellen Sie häufig Situationen auf, in denen Sie Überprüfungscodes senden müssen. Und in Wirklichkeit ...

Laravel -Zeitplan -Aufgabe Ausführen nicht reagierende Fehlerbehebung Bei Verwendung der Zeitplanung von Laravel -Zeitplänen werden viele Entwickler auf dieses Problem stoßen: Zeitplan: Run ...

Die Methode zum Umgang mit Laravels E -Mail -Versagen zum Senden von Verifizierungscode besteht darin, Laravel zu verwenden ...

So implementieren Sie die Tabellenfunktion von benutzerdefiniertem Klicken, um Daten in dcatadmin (laravel-admin) hinzuzufügen, wenn Sie DCAT verwenden ...

Die Auswirkungen des Austauschs von Redis -Verbindungen im Laravel -Framework und der Auswahl von Methoden bei Verwendung von Laravel -Framework und Redis können Entwickler auf ein Problem stoßen: Durch Konfiguration ...

Benutzerdefinierte Mieterdatenbankverbindung in Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis beim Erstellen von Multi-Mandanten-Anwendungen mit Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis, ...

Laravel – Aktions-URL – Laravel 5.7 führt eine neue Funktion namens „Aufrufbare Aktions-URL“ ein. Diese Funktion ähnelt der in Laravel 5.6, die String-in-Action-Methoden akzeptiert. Der Hauptzweck der neuen Syntax, die Laravel 5.7 eingeführt hat, besteht darin, direktl

Laraveleloquent-Modellab Abruf: Das Erhalten von Datenbankdaten Eloquentorm bietet eine prägnante und leicht verständliche Möglichkeit, die Datenbank zu bedienen. In diesem Artikel werden verschiedene eloquente Modellsuchtechniken im Detail eingeführt, um Daten aus der Datenbank effizient zu erhalten. 1. Holen Sie sich alle Aufzeichnungen. Verwenden Sie die Methode All (), um alle Datensätze in der Datenbanktabelle zu erhalten: UseApp \ Models \ post; $ posts = post :: all (); Dies wird eine Sammlung zurückgeben. Sie können mit der Foreach-Schleife oder anderen Sammelmethoden auf Daten zugreifen: foreach ($ postas $ post) {echo $ post->
