Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie einen String mit PHP in ein DateTime-Objekt

So konvertieren Sie einen String mit PHP in ein DateTime-Objekt

PHPz
Freigeben: 2023-03-21 11:40:02
Original
1632 Leute haben es durchsucht

In PHP ist die Konvertierung von Strings und Zeit ein häufig auftretendes Problem. Insbesondere bei Operationen im Zusammenhang mit Zeitstempeln, Datumsangaben und Uhrzeiten ist die Konvertierung von Zeichenfolgen und Uhrzeiten besonders wichtig. In diesem Artikel erfahren Sie, wie Sie in PHP einen String in ein DateTime-Objekt konvertieren.

1. Grundlegende Operationen zum Konvertieren von Zeichenfolgen in DateTime-Objekte

In PHP können Sie die Methode createFromFormat() in der DateTime-Klasse verwenden, um Zeichenfolgen in DateTime-Objekte zu konvertieren. Der Funktionsprototyp dieser Methode lautet wie folgt:

public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone = NULL ] )
Nach dem Login kopieren

Darunter wird der Parameter $format verwendet, um das Format der Zeitzeichenfolge darzustellen, der Parameter $time stellt die Zeichenfolge dar, die in ein DateTime-Objekt konvertiert werden muss, und der Der Parameter $timezone stellt die Zeitzone dar, die eingestellt werden muss. Der Wert des Parameters $format ist derselbe wie die Funktion strftime(), wie folgt:

Format Bedeutung
%d Der Tag des Monats, mit führenden Nullen (01 -31 )
%m Monat, mit führenden Nullen (01-12)
%Y Jahr, vierstellig
%H Stunde, 24-Stunden-Format, mit führenden Nullen (00-23)
%i Minuten, mit führenden Nullen (00-59)
%s Sekunden, mit führenden Nullen (00-59)
%p am Oder Nachmittag in Kleinbuchstaben (am oder pm)
%P Morgen oder Nachmittag in Großbuchstaben (AM oder PM)

Hier ist ein Beispiel für die Konvertierung einer Zeichenfolge in ein DateTime-Objekt:

<?php
$dateStr = &#39;2018-03-15&#39;;
$dateTime = DateTime::createFromFormat(&#39;Y-m-d&#39;, $dateStr);
echo $dateTime->format('Y-m-d H:i:s');
?>
Nach dem Login kopieren

Dieses Beispiel konvertiert die Zeichenfolge „2018-03-15“ in ein DateTime-Objekt und formatiert sie mithilfe der format()-Methode in die Form „2018-03-15 00:00:00“.

2. String-Konvertierung im Datums- und Uhrzeitformat

Bei der Verarbeitung von Strings im Datums- und Uhrzeitformat müssen wir für die Konvertierung ein bestimmtes Datums- und Uhrzeitformat verwenden. Im Folgenden sind einige häufig verwendete Datums- und Uhrzeitformate aufgeführt:

Format Bedeutung
Y-m-d Jahr, Monat und Tag (z. B. 2018-03-15)
Y/ m/d Jahr, Monat und Tag (z. B. 15.03.2018)
Y.m.d Jahr, Monat und Tag (z. B. 15.03.2018)
Y Jahr, Monat , und Tag Jahr, Monat und Tag (z. B.: 2018.03 Monat 15)
Ymd Jahr, Monat und Tag (z. B.: 20180315)
H:i:s Stunde: Minute: Sekunde (z. B. 22:30:15)
H: i Stunde: Minuten (z. B. 22:30)
Y-m-d H:i:s Jahr Monat Tag Stunde: Minuten : Sekunden (z. B. 15.03.2018 22:30:15)
Y Jahr m Monat d Tag H:i Jahr Monat Tag Stunde: Minute (z. B.: 15. März 2018 22:30)

Zum Beispiel die Zeichenfolge „15. März 2018 22:30“ Ein Beispiel für die Konvertierung in ein DateTime-Objekt lautet wie folgt:

<?php
$dateStr = &#39;2018年03月15日 22:30&#39;;
$dateTime = DateTime::createFromFormat(&#39;Y年m月d日 H:i&#39;, $dateStr);
echo $dateTime->format('Y-m-d H:i:s');
?>
Nach dem Login kopieren

Dieses Beispiel konvertiert die Zeichenfolge „2018-03-15 22:30“ in ein DateTime-Objekt und verwendet die Methode format(), um es im Format „2018-03-15 22:30:00“ zu formatieren.

3. Zeitzoneneinstellung

Bei der Datums- und Uhrzeitverarbeitung ist die Zeitzoneneinstellung sehr wichtig. Zeitzoneneinstellungen können über statische Methoden in der DateTimeZone-Klasse erreicht werden. Hier sind einige häufig verwendete Zeitzonen:

Name der Zeitzone Bedeutung
Afrika/Abidjan Elfenbeinküste. Zeit
Afrika/Accra Ghana Standardzeit
Afrika /Addis_Abeba Ostafrikanische Zeit
Amerika/New York US Eastern Time
Asien/Shanghai China Standard. Zeit
Australien/Sydney Austral ian Eastern Standard Time
Europa/ Paris Mitteleuropäische Zeit
Pazifik/Fidschi Fidschi-Zeit

例如设置时区为中国标准时间的例子如下:

<?php
$dateStr = &#39;2018-03-15 22:30:15&#39;;
$timezone = new DateTimeZone(&#39;Asia/Shanghai&#39;);
$dateTime = DateTime::createFromFormat(&#39;Y-m-d H:i:s&#39;, $dateStr, $timezone);
echo $dateTime->format('Y-m-d H:i:s');
?>
Nach dem Login kopieren

以上例子将字符串"2018-03-15 22:30:15"转换为DateTime对象,并将时区设置为中国标准时间。

四、总结

通过本文的介绍,我们学习了如何将字符串转换为PHP中的DateTime对象。在实际开发中,我们需要根据时间格式和时区的需求来设置转换参数。同时,在处理时间相关操作时,也需要注意时区的设置以及日期时间格式的转换。

需要指出的是,在字符串转换为DateTime对象过程中,需要保证字符串的格式与时间格式一致。一旦字符串格式不正确,将导致转换失败。因此,在处理时间相关操作时,需要仔细检查字符串格式以及转换参数。

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie einen String mit PHP in ein DateTime-Objekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage