Heim > Backend-Entwicklung > PHP-Problem > Gibt es eine Möglichkeit, die Zeit in PHP zu manipulieren?

Gibt es eine Möglichkeit, die Zeit in PHP zu manipulieren?

青灯夜游
Freigeben: 2023-03-15 18:48:02
Original
2362 Leute haben es durchsucht

php hat eine Möglichkeit, die Zeit zu manipulieren. PHP bietet zahlreiche Methoden zur Datums- und Zeitverarbeitung: 1. date(), formatiert das lokale Datum und die lokale Zeit; 2. mktime(), gibt den Zeitstempel des Datums zurück; 3. idate(), formatiert die lokale Zeit als Ganzzahl ; 4. , strtotime(), Zeitzeichenfolge in Zeitstempel konvertieren usw.

Gibt es eine Möglichkeit, die Zeit in PHP zu manipulieren?

Die Betriebsumgebung dieses Tutorials: Windows7-System, PHP7.1-Version, DELL G3-Computer

php verfügt über eine Betriebszeitmethode.

Die Verwendung und Verarbeitung von Datum und Uhrzeit ist in der Webentwicklung von wesentlicher Bedeutung, z. B. der Zeitpunkt der Formularübermittlung, der Zeitpunkt der Benutzeranmeldung, der Zeitpunkt der Aktualisierung und Löschung von Daten in der Datenbank usw. Wenn Sie den Zeitpunkt aufzeichnen möchten, zu dem diese Vorgänge ausgeführt werden, müssen Sie sie mit Datum und Uhrzeit abschließen.

PHP bietet uns eine Fülle von Funktionen zur Datums- und Uhrzeitverarbeitung:

Funktion Beschreibung
checkdate() Gregorianisches Datum überprüfen.
date_add() Tag, Monat, Jahr, Stunde, Minute und Sekunde zu einem Datum hinzufügen.
date_create_from_format() Gibt ein neues DateTime-Objekt zurück, das gemäß dem angegebenen Format formatiert ist.
date_create() Gibt ein neues DateTime-Objekt zurück.
date_date_set() Ein neues Datum festlegen.
date_default_timezone_get() Gibt die Standardzeitzone zurück, die von allen Datums-/Uhrzeitfunktionen verwendet wird.
date_default_timezone_set() Legen Sie die Standardzeitzone fest, die von allen Datums-/Uhrzeitfunktionen verwendet wird.
date_diff() Gibt die Differenz zwischen zwei Datumsangaben zurück.
date_format() Gibt ein Datum zurück, das gemäß dem angegebenen Format formatiert ist.
date_get_last_errors() Gibt Warnungen/Fehler in einer Datumszeichenfolge zurück.
date_interval_create_from_date_string() Erstellen Sie ein DateInterval aus dem relevanten Teil der Zeichenfolge.
date_interval_format() Zeitintervall formatieren.
date_isodate_set() ISO-Datum festlegen.
date_modify() Zeitstempel ändern.
date_offset_get() Gibt den Zeitzonenoffset zurück.
date_parse_from_format() Gibt ein assoziatives Array mit Details zum angegebenen Datum gemäß dem angegebenen Format zurück.
date_parse() Gibt ein assoziatives Array mit Details für ein angegebenes Datum zurück.
date_sub() Subtrahieren Sie Tag, Monat, Jahr, Stunden, Minuten und Sekunden vom angegebenen Datum.
date_sun_info() Gibt ein Array zurück, das Informationen über Sonnenaufgang/-untergang und Beginn/Ende der Dämmerung für das angegebene Datum und den angegebenen Ort enthält.
date_sunrise() Gibt die Sonnenaufgangszeit des angegebenen Datums und Ortes zurück.
date_sunset() Gibt die Sonnenuntergangszeit des angegebenen Datums und Ortes zurück.
date_time_set() Stellen Sie die Uhrzeit ein.
date_timestamp_get() Gibt den Unix-Zeitstempel zurück.
date_timestamp_set() Datum und Uhrzeit basierend auf dem Unix-Zeitstempel festlegen.
date_timezone_get() Gibt die Zeitzone des angegebenen DateTime-Objekts zurück.
date_timezone_set() Setzt die Zeitzone eines DateTime-Objekts.
date() Formatieren Sie lokales Datum und Uhrzeit.
getdate() Gibt die Datums-/Uhrzeitinformationen eines Zeitstempels oder das aktuelle lokale Datum/die aktuelle lokale Uhrzeit zurück.
gettimeofday() gibt die aktuelle Uhrzeit zurück.
gmdate() GMT/UTC-Datum und -Uhrzeit formatieren.
gmmktime() Gibt den UNIX-Zeitstempel des GMT-Datums zurück.
gmstrftime() Formatieren Sie GMT/UTC-Datum und -Uhrzeit entsprechend dem Gebietsschema.
idate() Ortszeit/-datum als Ganzzahl formatieren.
localtime() Gibt die Ortszeit zurück.
microtime() Gibt die Anzahl der Mikrosekunden im aktuellen Unix-Zeitstempel zurück.
mktime() Gibt den Unix-Zeitstempel eines Datums zurück.
strftime() Formatieren Sie die Ortszeit/das Ortsdatum gemäß den Gebietsschemaeinstellungen.
strptime() Parsen Sie die von strftime() generierte Uhrzeit/Datum.
strtotime() Parsen Sie alle Datums- oder Uhrzeitbeschreibungen in englischem Text in einen Unix-Zeitstempel.
time() Gibt den Unix-Zeitstempel der aktuellen Zeit zurück.
timezone_abbreviations_list() Gibt ein assoziatives Array zurück, das die Sommerzeit, den Offset und den Zeitzonennamen enthält.
timezone_identifiers_list() Gibt ein numerisches Array mit allen Zeitzonenkennungen zurück.
timezone_location_get() Gibt die Standortinformationen in der angegebenen Zeitzone zurück.
timezone_name_from_ abbr() Gibt den Zeitzonennamen basierend auf der Zeitzonenabkürzung zurück.
timezone_name_get() Gibt den Namen der Zeitzone zurück.
timezone_offset_get() Gibt den Zeitzonenoffset relativ zur GMT zurück.
timezone_open() Erstellen Sie ein neues DateTimeZone-Objekt.
timezone_transitions_get() Gibt alle Übergänge für Zeitzonen zurück.
timezone_version_get() Gibt die Version der Zeitzonendatenbank zurück.

Das Folgende ist eine kurze Einführung in einige Methoden zur Zeit- und Datumsverarbeitung:

1. Erhalten Sie die aktuelle Uhrzeit mit PHP (5 Möglichkeiten)

Bei Datums- und Uhrzeitfunktionen ist es sehr wichtig, den UNIX-Zeitstempel zu erhalten. Der Zeitstempel ist eine Folge von Zeichen. Er bezieht sich auf die Gesamtzahl der Millisekunden von 00:00:00 Uhr am 1. Januar 1970 GMT (08:00:00 Uhr am 1. Januar 1970, Pekinger Zeit) bis heute. Hier gibt es mehrere Funktionen, um die aktuelle Uhrzeit zu ermitteln. Die Funktion

  • gmmktime()

gmmktime() kann den UNIX-Zeitstempel des GMT-Datums abrufen. Die Syntax lautet wie folgt:

int gmmktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
Nach dem Login kopieren

Die Parameter dieser Funktion können von rechts nach links leer bleiben und die leeren Parameter werden auf den entsprechenden aktuellen GMT-Wert gesetzt.

Verwendungsbeispiele sind wie folgt:

<?php
echo gmmktime();  //没有设置参数, 则默认取得当前GMT时间
echo gmmktime(0,45,3,7,7,2016);  //设置参数表示GMT时间2016年7月7日0点45分3秒
?>
Nach dem Login kopieren

Das Druckergebnis der Ausführung des obigen Programms ist:

1467909956   1467852303
Nach dem Login kopieren
  • mktime()

mktime() Sie können auch den UNIX-Zeitstempel eines Datums abrufen. Die Syntax lautet wie folgt:

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
Nach dem Login kopieren

Diese Funktion gibt einen UNIX-Zeitstempel basierend auf den angegebenen Argumenten zurück. Ein Zeitstempel ist eine lange Ganzzahl, die die Anzahl der Sekunden von der UNIX-Epoche bis zu einem bestimmten Zeitpunkt enthält.

Wie bei der Funktion gmmktime() können auch die Parameter dieser Funktion von rechts nach links weggelassen werden, und alle ausgelassenen Parameter werden auf den aktuellen Wert des lokalen Datums und der lokalen Uhrzeit gesetzt.

Verwendungsbeispiele sind wie folgt:

<?php
echo mktime();  // 没有设置参数则默认取得当前GMT时间
echo mktime(0,45,3,7,7,2016);  //设置参数表示GMT时间2016年7月7日0点45分3秒
?>
Nach dem Login kopieren

Das gedruckte Ergebnis der Ausführung des obigen Programms ist:

1467910465 1467852303
Nach dem Login kopieren
  • microtime()

microtime() kann den aktuellen UNIX-Zeitstempel und die aktuellen Mikrosekunden abrufen. Die Syntax lautet wie folgt:

mixed microtime ([ bool $get_as_float ] )
Nach dem Login kopieren

Wenn der Parameterwert get_as_float auf true gesetzt ist, gibt microtime() eine Gleitkommazahl ohne Parameter zurück, es wird eine Zeichenfolge im Format „msec sec“ zurückgegeben, wobei „sec“ herkommt die UNIX-Epoche bis zur Gegenwart. Anzahl der Sekunden, ms ist der Mikrosekundenteil. Beide Teile der Zeichenfolge werden in Sekunden zurückgegeben.

Verwendungsbeispiele sind wie folgt:

<?php
echo microtime();  //返回 msec sec 格式字符串表示时间
echo "<br/>";
echo microtime(true);  //返回一个浮点型字符串表示时间
?>
Nach dem Login kopieren

Das gedruckte Ergebnis der Ausführung des obigen Programms ist wie folgt:

0.40474900 1467910862
1467910862.4048
Nach dem Login kopieren
  • time()

time()-Funktion kann den aktuellen UNIX-Zeitstempel zurückgeben. Die Syntax lautet wie folgt:

int time ( void )
Nach dem Login kopieren

time() Die Syntax der Funktion ist relativ einfach. Das Verwendungsbeispiel lautet wie folgt:

<?php
echo time();
?>
Nach dem Login kopieren

Das Druckergebnis der Ausführung des obigen Programms ist:

1467911104
Nach dem Login kopieren
  • getdate().

getdate() kann Datums- und Uhrzeitinformationen abrufen. Die Syntax lautet wie folgt:

array getdate ([ int $timestamp = time() ] )
Nach dem Login kopieren

Diese Funktion gibt ein assoziatives Array-Array zurück, das Datumsinformationen basierend auf dem Zeitstempel enthält. Wenn kein Zeitstempel angegeben wird, wird davon ausgegangen, dass es sich um die aktuelle Ortszeit handelt (dies ist derselbe Wert wie bei der Funktion time()).

Die Schlüsselnameneinheiten im zurückgegebenen assoziativen Array sind wie in der Tabelle dargestellt.

wday Die Nummer des Wochentags0 (Sonntag) bis 6 (Samstag)monDie Nummer des Monats1 bis 12Jahr4 Ziffern Das komplette JahrZum Beispiel: 1999 oder 2019ydayDie numerische Darstellung des Tages des Jahres0 bis 365WochentagDie vollständige Textdarstellung des Wochentags Montag bis SonntagMonatVolltextdarstellung des Monats, z. B. Januar oder AprilJanuar bis Dezember0Die Anzahl der Sekunden seit der UNIX-Epoche und der Rückgabewert von time() und for date() Der Wert ähnelt systemabhängig, der typische Wert ist -2147483648 ~ 2147483647

getdate() 函数的使用示例如下:

<?php
echo "<pre class="brush:php;toolbar:false">";
var_dump(getdate());
?>
Nach dem Login kopieren

执行以上程序的打印结果如下:

array(11) {
    ["seconds"]=>int(57)
    ["minutes"]=>int(18)
    ["hours"]=>int(17)
    ["mday"]=>int(7)
    ["wday"]=>int(4)
    ["mon"]=>int(7)
    ["year"]=>int(2016)
    ["yday"]=>int(188)
    ["weekday"]=>string(8) "Thursday"
    ["month"]=>string(4) "July"
    [0]=>int(1467911937)
}
Nach dem Login kopieren

2、strtotime()与mktime():日期转时间戳

  • strtotime() 函数

使用 strtotime() 函数可以将任何字符串类型的日期/时间转换为 UNIX 时间戳,其语法格式如下:

strtotime($time [,$now = time()])
Nach dem Login kopieren

其中 $time 为表示时间/日期的字符串,例如“2020-01-01”;$now 为可选参数,用来计算返回值的时间戳。函数执行成功会返回指定的字符串,执行失败返回 FALSE。

另外需要注意的是,如果使用两位数字表示年份的话,其中 0 ~ 69 表示 2000 ~ 2069,70 ~ 100 则表示 1970 ~ 2000。

【示例】使用 strtotime() 函数获取指定时间的时间戳。

<?php
    echo &#39;当前的时间戳是:&#39;.time().&#39;<br>&#39;;
    echo &#39;使用“now”获取当前的时间戳:&#39;.strtotime(&#39;now&#39;).&#39;<br>&#39;;
    echo &#39;2000-09-10 的时间戳是:&#39;.strtotime("10 September 2000").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一天:&#39;.strtotime("+1 day").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一周:&#39;.strtotime("+1 week").&#39;<br>&#39;;
    echo &#39;在当前的时间戳上加一周两天四小时两分钟:&#39;.strtotime("+1 week 2 days 4 hours 2 seconds").&#39;<br>&#39;;
    echo &#39;下一个周四的时间戳:&#39;.strtotime("next Thursday").&#39;<br>&#39;;
    echo &#39;上一个周一的时间戳:&#39;.strtotime("last Monday").&#39;<br>&#39;;
?>
Nach dem Login kopieren

运行结果如下:

当前的时间戳是:1585273874
使用“now”获取当前的时间戳:1585273874
2000-09-10 的时间戳是:968515200
在当前的时间戳上加一天:1585360274
在当前的时间戳上加一周:1585878674
在当前的时间戳上加一周两天四小时两分钟:1586065876
下一个周四的时间戳:1585756800
上一个周一的时间戳:1584892800
Nach dem Login kopieren

注意:根据具体时间的变化,程序每次运行的结果略有不同。

  • mktime() 函数

除了 strtotime() 函数外,我们还可以使用 PHP 中的 mktime() 函数来获取指定日期的 UNIX 时间戳,该函数的语法格式如下:

mktime ([$hour = date("H") [, $minute = date("i") [, $second = date("s") [, $month = date("n") [, $day = date("j") [, $year = date("Y") [, $is_dst = -1 ]]]]]]])
Nach dem Login kopieren

参数说明如下:

  • $hour:表示一天中经过的小时数。如果 $hour 为负值,则表示前一天的适当时间;如果 $hour 大于 23,则表示第二天的适当时间。

  • $minute:表示一个小时内经过的分钟数。如果 $minute 为负值,则表示前一小时适当的分钟数;如果 $minute 大于 59,则表示下一小时中的适当分钟数。

  • $second:表示一分钟内经过的秒数。如果 $second 为负值,则表示前一分钟内的适当秒数;如果 $second 大于59,则表示下一分钟内的适当秒数。

  • $month:表示一年中经过的月份数,取值范围在 1 到 12 之间。如果 $month 小于 1(包括负值),则表示上一年的适当月份;如果 $month 大于 12,则表示下一年的适当月份。

  • $day:表示一个月中经过的天数,取值范围在 1 到 31 之间(取决于具体月份的天数)。如果 $day 小于 1(包括负值),则表示上个月的适当天数,比如 0 表示上个月的最后一天,-1 表示上个月的倒数第二天等等;如果 $day 大于本月的最大天数,则表示下个月的适当日期。

  • $year:表示具体的年份,可以是两位或四位数字,0 ~ 69 对应 2000 ~ 2069 年,70 ~ 100 对应 1970 ~ 2000年。在如今系统中普遍把 time_t 作为一个 32 位有符号整数的情况下,$year 的合法范围是 1901 到 2038 之间,不过此限制自 PHP5.1.0 起已被克服了。

  • $is_dst:本参数可以设为 1,表示正处于夏时制时间(DST),0 表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制。不过本参数在 PHP5.1.0 中已被废弃,并在 PHP7.0.0 中移除。

提示:mktime() 函数中的参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。如果省略函数的所有参数,那么 mktime() 函数会和 time() 函数一样,返回当前的时间戳。

【示例】使用 mktime() 函数获取指定时间的时间戳。

<?php
    $time1 = time();
    echo &#39;当前的时间戳是:&#39;.$time1.&#39;<br>&#39;;
    $time2 = mktime(0, 0, 0, 3, 26, 20);
    echo &#39;2020-03-26 00:00:00 的时间戳是:&#39;.$time2.&#39;<br>&#39;;
    $time3 = mktime();
    echo &#39;省略函数的所有参数,获得的时间戳是:&#39;.$time3.&#39;<br>&#39;;
    $time4 = mktime(-1, -20, 6, 3, 26, 2020);
    echo &#39;2020-03-25 22:40:06 的时间戳是:&#39;.$time4.&#39;<br>&#39;;
?>
Nach dem Login kopieren

运行结果如下:

当前的时间戳是:1585216256
2020-03-26 00:00:00 的时间戳是:1585152000
省略函数的所有参数,获得的时间戳是:1585216256
2020-03-25 22:40:06 的时间戳是:1585147206
Nach dem Login kopieren

推荐学习:《PHP视频教程

Das obige ist der detaillierte Inhalt vonGibt es eine Möglichkeit, die Zeit in PHP zu manipulieren?. 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
getdate()-Funktion gibt den assoziativen Array-Schlüsselnamen zurück
Schlüsselname Beschreibung Beispiel für einen Rückgabewert
SekundenSekunden' numerische Darstellung 0 bis 59
Minuten Minuten. Die numerische Darstellung von 0 bis 59.
Stunden.Die numerische Darstellung von Stunden. 0 bis 23