So verwenden Sie die Strftime-Funktion in PHP

不言
Freigeben: 2023-04-01 17:10:01
Original
3899 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Verwendung der PHP-Funktion strftime() vor, um die lokale Zeit/das lokale Datum entsprechend den regionalen Einstellungen zu formatieren. Freunde, die sie benötigen, können darauf zurückgreifen it

Definition und Verwendung

strftime()-Funktion formatiert die lokale Zeit/das lokale Datum gemäß den Gebietsschemaeinstellungen.

Syntax

strftime(format, timestamp) Parameter Beschreibung
format Optional. Gibt an, wie Ergebnisse zurückgegeben werden.
Zeitstempel optional.
Tipps und Hinweise
Tipp: Gleiches Verhalten wie gmstrftime(), außer dass die zurückgegebene Zeit die Ortszeit ist.

Beispiel

Geben Sie die Ergebnisse von strftime() und gmstrftime() aus:

<?php教程
echo(strftime("%b %d %Y %X", mktime(20,0,0,12,31,98)));
echo(gmstrftime("%b %d %Y %X", mktime(20,0,0,12,31,98)));

//输出当前日期、时间和时区
echo(gmstrftime("It is %a on %b %d, %Y, %X time zone: %Z",time()));
?>
Nach dem Login kopieren

strftime Die ()-Funktion kann Datumszeichenfolgen im Format JJJJ-MM-TT HH:MM:SS in andere Formen von Zeichenfolgen konvertieren.
Die Syntax von strftime() lautet strftime(format, date/time, modifier, modifier, ...)

Es kann Datums- und Uhrzeitangaben mit den folgenden Symbolen formatieren:

%aAbkürzung des Wochentags im aktuellen GebietSonntag bis Samstag
%ADer vollständige Name des Wochentags im aktuellen BereichSonntag bis Samstag
%dDer Tag des Monats, Dezimalzahl (Bereich von 01 bis 31)01 bis 31
%eDer Tag des Monat, Dezimalzahl, eine Ziffer davor. Es wird ein Leerzeichen hinzugefügt (im Bereich von „1“ bis „31“). Nicht wie unter Windows beschrieben implementiert. Weitere Informationen weiter unten. 1 bis 31
%jDer Tag des Jahres als dreistellige Dezimalzahl mit führenden Nullen (im Bereich von 001 bis 366). )001 bis 366
%uEntspricht der ISO-8601-Dezimaldarstellung des Wochentags [1,7], 1 bedeutet Montag 1 (Montag) bis 7 (Sonntag)
%wDer Wochentag, Sonntag ist 0 0 (Sonntag) bis 6 (Samstag)
Woche------
%UDie erste Woche des Jahres, beginnend mit dem ersten Sonntag der ersten Woche als erstem Tag13 (für die 13. volle Woche des Jahres)
%V%V – ISO-8601:1988-Format der Woche des Jahres, im Bereich von 01 bis 53, Woche 1 ist die erste des Jahres Die Woche hat noch mindestens 4 Tage übrig, wobei Montag der erste Tag der Woche ist. (Verwenden Sie %G oder %g als Jahreszusammensetzung der entsprechenden Wochennummer des angegebenen Zeitstempels.)01 bis 53 (wobei 53 eine überlappende Woche darstellt)
% WDie Wochennummer des Jahres, beginnend mit dem ersten Montag der ersten Woche als erster Tag46 (für die 46. Woche des Jahres, die mit einem Montag beginnt)
Monat------
%bDie Abkürzung des Monats in der aktuellen RegionJan bis Dezember
%BDer vollständige Name des Monats in der aktuellen RegionJanuar bis Dezember
%hDie Abkürzung des Monats in der aktuellen Region (Alias ​​von %b) Jan bis Dezember
%mZweistelliger Monat01 (ist Januar) bis 12 (ist Dezember)
Jahr ------
%CZwei Ziffern zeigen das Jahrhundert an ( das Jahr wird durch 100 geteilt und auf eine ganze Zahl gekürzt) 19 ist das 20. Jahrhundert
%g2-stelliges Jahr, entsprechend ISO-8601:1988-Wochennummer (siehe %V). Gleiches Format und gleiche Werte wie %V, außer dass dieses Jahr verwendet wird, wenn die ISO-Wochennummer zum vorherigen oder nächsten Jahr gehört. Zum Beispiel: Die Woche vom 6. Januar 2009 ist der 09.
%GDie vollständige vierstellige Version von %gZum Beispiel: Die Woche vom 3. Januar 2009 ist 2008.
%yZwei Ziffern zeigen das Jahr anZum Beispiel: 09 ist 2009, 79 ist 1979
% YVierstellige Anzeige des JahresZum Beispiel: 2038
Zeit---- --
%HZweistellige Stunden im 24-Stunden-Format anzeigen 00 bis 23
%IZweistellige Stunden im 12-Stunden-Format anzeigen01 bis 12
%l (Kleinbuchstabe ' L')Zeigt die Stunde im 12-Stunden-Format an, mit einem Leerzeichen vor einer einzelnen Zahl 1 bis 12
%Mzweistellige Anzahl der Minuten00 bis 59
%pGroßbuchstaben „AM“ oder „PM“ der angegebenen Zeit Zum Beispiel: 00:31 ist AM, 22:23 ist PM
%PDer Kleinbuchstabe „am“ oder „pm“ von die angegebene ZeitZum Beispiel: 00:31 ist Vormittag, 22:23 ist Nachmittag
%r ist dasselbe wie „%I :%M:%S %p"Zum Beispiel: 21:34:17 ist 21:34:17 Uhr
%R ist dasselbe wie „%H:%M“ Zum Beispiel: 00:35 Uhr ist 00:35, 16:44 Uhr ist 16:44
% SZwei Ziffern stellen Sekunden dar 00 bis 59
%T ist dasselbe wie „%H:%M :%S"Zum Beispiel: 21:34:17 Uhr Ja 21:34:17
%XBevorzugte Zeitdarstellung für die aktuelle Region, ohne DatumZum Beispiel: 03:59:16 oder 15:59:16
%zZeitzonenversatz oder -abkürzung (vom Betriebssystem bestimmt) von UTC Zum Beispiel: Eastern Time ist -0500 oder EST
%Z%z Kein Zeitzonenversatz oder Abkürzung für UTC angegeben (vom Betriebssystem bestimmt) z. B.: -0500 oder EST ist Eastern Time
Zeit- und Datumsstempel - -----
%cDer bevorzugte Datums- und Uhrzeitausdruck in der aktuellen RegionZum Beispiel: 5. Februar 2009 00:45:10 Uhr ist Dienstag 5. Februar 00:45:10 2009
%DDasselbe wie „%m/%d/ %y"Zum Beispiel: Der 5. Februar 2009 ist der 02/05/09
%FGleiches wie „%Y-%m -%d" (häufig in Datenbank-Datumsstempeln verwendet)Zum Beispiel: Der 5. Februar 2009 ist der 05.02.2009
%sThe Zeitstempel der Unix-Epoche (identisch mit der Funktion time())Zum Beispiel: 10. September 1979 8:40:00 Uhr ist 305815200
%xDie bevorzugte Zeitdarstellung für die aktuelle Zone, ohne Zeit Zum Beispiel: Der 5. Februar 2009 ist der 02.05.09
Andere------
%nZeilenumbruch ("n")- --
%tTabulatorzeichen ("t")---
%%Prozentzeichen („%“ im Text)

这个参数的最大长度是 1023 个字符。

Warning
尽管 ISO 9889:1999(当前的 C 标准)明确指出一周从星期一开始,但是 Sun Solaris 的一周似乎从星期天开始并作为 1。所以 %u 的结果也许不会和手册里描述得一样。

Warning
仅针对 Windows:这个函数里 %e 修饰符修饰符还不能支持 Windows。 为了得到这个值可以用 %#d 修饰符来代替。下例说明了如何写一个跨平台支持的函数。

Warning
仅针对 Mac OS X:这个函数里 %P 修饰符还不能支持 Mac OS X。

timestamp
可选的 timestamp 参数是一个 integer 的 Unix 时间戳,如未指定,参数值默认为当前本地时间。也就是说,其值默认为 time() 的返回值。

strftime()的用法举例如下:

select strftime('%Y.%m.%d %H:%M:%S','now','localtime');
结果:2018.06.21 21:41:09
其实更好的用法是这样的,比如统,本月或本年的支出:
select strftime('%Y-%m',日期) as 月份,sum(支出) as 月支出 from 流水帐 group by 月份;

Example #1 strftime() locale examples

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" in Finnish is %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A and");
setlocale(LC_TIME, "de_DE");
echo strftime(" in German %A.\n");
?>
Nach dem Login kopieren

Example #2 ISO 8601:1988 week number example

<?php
/*   December 2002 / January 2003
ISOWk M  Tu W  Thu F  Sa Su
----- ----------------------------
51   16 17 18 19 20 21 22
52   23 24 25 26 27 28 29
1   30 31  1  2  3  4  5
2    6  7  8  9 10 11 12
3   13 14 15 16 17 18 19  */

// Outputs: 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Outputs: 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Outputs: 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Outputs: 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";



/*   December 2004 / January 2005
ISOWk M  Tu W  Thu F  Sa Su
----- ----------------------------
51   13 14 15 16 17 18 19
52   20 21 22 23 24 25 26
53   27 28 29 30 31  1  2
1    3  4  5  6  7  8  9
2   10 11 12 13 14 15 16  */

// Outputs: 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Outputs: 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Outputs: 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Outputs: 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>
Nach dem Login kopieren

Example #3 Cross platform compatible example using the %e modifier

<?php

// Jan 1: results in: &#39;%e%1%&#39; (%%, e, %%, %e, %%)
$format = &#39;%%e%%%e%%&#39;;

// Check for Windows to find and replace the %e 
// modifier correctly
if (strtoupper(substr(PHP_OS, 0, 3)) == &#39;WIN&#39;) {
  $format = preg_replace(&#39;#(?<!%)((?:%%)*)%e#&#39;, &#39;\1%#d&#39;, $format);
}

echo strftime($format);
?>
Nach dem Login kopieren

Example #4 Display all known and unknown formats.

<?php
// Describe the formats.
$strftimeFormats = array(
  &#39;A&#39; => &#39;A full textual representation of the day&#39;,
  &#39;B&#39; => &#39;Full month name, based on the locale&#39;,
  &#39;C&#39; => &#39;Two digit representation of the century (year pided by 100, truncated to an integer)&#39;,
  &#39;D&#39; => &#39;Same as "%m/%d/%y"&#39;,
  &#39;E&#39; => &#39;&#39;,
  &#39;F&#39; => &#39;Same as "%Y-%m-%d"&#39;,
  &#39;G&#39; => &#39;The full four-digit version of %g&#39;,
  &#39;H&#39; => &#39;Two digit representation of the hour in 24-hour format&#39;,
  &#39;I&#39; => &#39;Two digit representation of the hour in 12-hour format&#39;,
  &#39;J&#39; => &#39;&#39;,
  &#39;K&#39; => &#39;&#39;,
  &#39;L&#39; => &#39;&#39;,
  &#39;M&#39; => &#39;Two digit representation of the minute&#39;,
  &#39;N&#39; => &#39;&#39;,
  &#39;O&#39; => &#39;&#39;,
  &#39;P&#39; => &#39;lower-case "am" or "pm" based on the given time&#39;,
  &#39;Q&#39; => &#39;&#39;,
  &#39;R&#39; => &#39;Same as "%H:%M"&#39;,
  &#39;S&#39; => &#39;Two digit representation of the second&#39;,
  &#39;T&#39; => &#39;Same as "%H:%M:%S"&#39;,
  &#39;U&#39; => &#39;Week number of the given year, starting with the first Sunday as the first week&#39;,
  &#39;V&#39; => &#39;ISO-8601:1988 week number of the given year, starting with the first week of the year with at least 4 weekdays, with Monday being the start of the week&#39;,
  &#39;W&#39; => &#39;A numeric representation of the week of the year, starting with the first Monday as the first week&#39;,
  &#39;X&#39; => &#39;Preferred time representation based on locale, without the date&#39;,
  &#39;Y&#39; => &#39;Four digit representation for the year&#39;,
  &#39;Z&#39; => &#39;The time zone offset/abbreviation option NOT given by %z (depends on operating system)&#39;,
  &#39;a&#39; => &#39;An abbreviated textual representation of the day&#39;,
  &#39;b&#39; => &#39;Abbreviated month name, based on the locale&#39;,
  &#39;c&#39; => &#39;Preferred date and time stamp based on local&#39;,
  &#39;d&#39; => &#39;Two-digit day of the month (with leading zeros)&#39;,
  &#39;e&#39; => &#39;Day of the month, with a space preceding single digits&#39;,
  &#39;f&#39; => &#39;&#39;,
  &#39;g&#39; => &#39;Two digit representation of the year going by ISO-8601:1988 standards (see %V)&#39;,
  &#39;h&#39; => &#39;Abbreviated month name, based on the locale (an alias of %b)&#39;,
  &#39;i&#39; => &#39;&#39;,
  &#39;j&#39; => &#39;Day of the year, 3 digits with leading zeros&#39;,
  &#39;k&#39; => &#39;Hour in 24-hour format, with a space preceding single digits&#39;,
  &#39;l&#39; => &#39;Hour in 12-hour format, with a space preceding single digits&#39;,
  &#39;m&#39; => &#39;Two digit representation of the month&#39;,
  &#39;n&#39; => &#39;A newline character ("\n")&#39;,
  &#39;o&#39; => &#39;&#39;,
  &#39;p&#39; => &#39;UPPER-CASE "AM" or "PM" based on the given time&#39;,
  &#39;q&#39; => &#39;&#39;,
  &#39;r&#39; => &#39;Same as "%I:%M:%S %p"&#39;,
  &#39;s&#39; => &#39;Unix Epoch Time timestamp&#39;,
  &#39;t&#39; => &#39;A Tab character ("\t")&#39;,
  &#39;u&#39; => &#39;ISO-8601 numeric representation of the day of the week&#39;,
  &#39;v&#39; => &#39;&#39;,
  &#39;w&#39; => &#39;Numeric representation of the day of the week&#39;,
  &#39;x&#39; => &#39;Preferred date representation based on locale, without the time&#39;,
  &#39;y&#39; => &#39;Two digit representation of the year&#39;,
  &#39;z&#39; => &#39;Either the time zone offset from UTC or the abbreviation (depends on operating system)&#39;,
  &#39;%&#39; => &#39;A literal percentage character ("%")&#39;,
);

// Results.
$strftimeValues = array();

// Evaluate the formats whilst suppressing any errors.
foreach($strftimeFormats as $format => $description){
  if (False !== ($value = @strftime("%{$format}"))){
    $strftimeValues[$format] = $value;
  }
}

// Find the longest value.
$maxValueLength = 2 + max(array_map(&#39;strlen&#39;, $strftimeValues));

// Report known formats.
foreach($strftimeValues as $format => $value){
  echo "Known format  : &#39;{$format}&#39; = ", str_pad("&#39;{$value}&#39;", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}

// Report unknown formats.
foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format => $description){
  echo "Unknown format : &#39;{$format}&#39;  ", str_pad(&#39; &#39;, $maxValueLength), ($description ? " ( {$description} )" : &#39;&#39;), "\n";
}
?>
Nach dem Login kopieren

下面是其他网友的补充

php strftime()的使用

string strftime ( string format[,inttimestamp = time() ] )

返回用给定的格式字串对给出的 timestamp 进行格式输出后的字符串。如果没有给出时间戳则用当前的本地时间。

Example1:

<?php
echo &#39;本年中的第·&#39; . strftime(&#39;%W&#39;, strtotime(&#39;+2 week midnight -0 second&#39;)) . &#39;·周&#39;;
?>
Nach dem Login kopieren

本年中的第·31·周

Example2:

<?php
echo "現在時間是:" . strftime(&#39;%d.%B %Y %H:%M:%S&#39;, time());
?>
Nach dem Login kopieren

現在時間是:20.July 2015 17:01:26

Example3:

<?php
echo &#39;日期時間格式化為:&#39; . strftime(&#39;%d.%B %Y %H:%M:%S&#39;, strtotime(&#39;2018-10-15&#39;));
?>
Nach dem Login kopieren

日期時間格式化為:15.October 2018 00:00:00

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

php将时间差转换为字符串的实现

关于php中urlencode()URL编码函数的解析

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Strftime-Funktion in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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