strftimeFormatuje lokalną datę/czas zgodnie z lokalizacją
&warn.deprecated.function-8-1-0.alternatives;
dateIntlDateFormatter::format
&reftitle.description;
#[\Deprecated]stringfalsestrftimestringformatintnulltimestamp&null;
Formatuje datę i lub/czas zgodnie z ustawieniami lokalizacji. Nazwy miesięcy i
i dni tygodnia oraz inne ciągi zależne od języka, przestrzegają obecnej lokalizacji
ustawionej przez setlocale.
Nie wszystkie symbole konwersji mogą być wspierane przez Twoją bibliotekę C i w takim
wypadku nie będą wspierane przez funkcję strftime z PHP.
Ponadto, nie wszystkie platformy wspierają ujemne zaczniki czasu, więc zakres
dat może być ograniczony do początku epoki Uniksa. Oznacza to, że
%e, %T, %R i %D (oraz możliwe, że inne) - tak samo jak daty przed
01.01.1970 - to wszystko nie zadziała na Windows, niektórych
dystrybucjach Linuksa i kilku innych systemach operacyjnych. Przegląd symboli
konwersji wspieranych przez system Windows można znaleźć na
MSDN.
&reftitle.parameters;
format
Symbole rozpoznawane w treści argumentu
formatformatOpisPrzykład zwróconej wartościDzień------%aSkrótowa tekstowa nazwa dniaSun do Sat%APełna tekstowa nazwa dniaSunday do Saturday%dDwucyfrowy zapis dnia miesiąca (z zerami wiodącymi)01 do 31%e
Dzień miesiąca ze spacją poprzedzającą wartości jednocyfrowe. Niedostępne
w systemie Windows, jak już napisano. Więcej informacji znajdziesz poniżej.
1 do 31%jDzień roku, 3 cyfry z zerami wiodącymi001 do 366%uNumeryczne przedstawienie dnia tygodnia zgodne z ISO-86011 (poniedziałek) do 7 (niedziela)%wNumeryczne przedstawienie dnia tygodnia0 (niedziela) do 6 (sobota)Tydzień------%UNumer tygodnia w danym roku, poczynając od pierwszej niedzieli,
jako pierwszego tygodnia13 (dla trzynastego tygodnia w roku)%VNumer tygonia w danym roku zgodny z ISO-8601:1988, poczynając od
pierwszego tygodnia, z przynajmniej czterema dniami w tym roku, poniedziałek
jest początkiem tygodnia01 do 53 (gdzie 53
to tydzień przejściowy)%WNumer tygodnia w danym roku, poczynając od
pierwszego poniedziałku, jako pierwszego tygodnia46 (dla 46 tygodnia roku rozpoczynającego
się poniedziałkiem)Miesiąc------%bSkrótowa nazwa miesiąca, zgodnie z lokalizacjąSty do Gru%BPełna nazwa miesiąca, zgodnie z lokalizacjąStyczeń do Grudzień%hSkrótowa nazwa miesiąca, zgodnie z lokalizacją (alias dla %b)Sty do Gru%mDwucyfrowa reprezentacja miesiąca01 (styczeń) do 12 (grudzień)Rok------%CDwucyfrowa reprezentacja stulecia (rok podzielony na 100, przycięty do liczby całkowitej)19 dla dwudziestego wieku%gDwucyfrowa reprezentacja roku zgodna ze standardem ISO-8601:1988 (zobacz %V)Przykład: 09 dla tygodnia z 06.01.2009%GPełna, czterocyfrowa wersja %gPrzykład: 2008 dla tygodnia z 03.01.2009%yDwucyfrowa reprezentacja rokuPrzykład: 09 dla roku 2009, 79 dla roku 1979%YCzterocyfrowa reprezentacja rokuPrzykład: 2038Czas------%HDwucyfrowa reprezentacja godziny, w formacie 24-godzinnym00 do 23%kGodzina w formacie 24-godzinnym, ze spacją poprzedzającą wartości jednocyfrowe 0 do 23%IDwucyfrowa reprezentacja godziny, w formacie 12-godzinnym01 do 12%l (małe 'L')Dwucyfrowa reprezentacja godziny, w formacie 12-godzinnym, ze spacją
poprzedzającą wartości jednocyfrowe 1 do 12%MDwucyfrowa reprezentacja minuty00 do 59%p'AM' lub 'PM' zapisane wielkimi literami, zależnie od podanego czasuPrzykład: AM dla 00:31,
PM dla 22:23. Dokładny wynik zależy od
systemu operacyjnego, może zostać zwrócony zapis małymi literami lub
zapis z kropkami (tj. a.m.)%P'am' lub 'pm' zapisane malymi literami, zależnie od podanego czasuPrzykład: am dla 00:31,
pm dla 22:23. Nie jest wspierane przez wszystkie systemy
operacyjne.%rTo samo co "%I:%M:%S %p"Przykład: 09:34:17 PM dla 21:34:17%RTo samo co "%H:%M"Przykład: 00:35 dla 12:35 AM, 16:44 dla 4:44 PM%SDwucyfrowa reprezentacja sekundy00 do 59%TTo samo co "%H:%M:%S"Przykład: 21:34:17 dla 09:34:17 PM%XPreferowane przedstawienie czasu, zależne od lokalizacji, bez datyPrzykład: 03:59:16 lub 15:59:16%zPrzesunięcie strefy czasowej. Niedostępne na Windows,
jak już napisano. Więcej informacji znajdziesz poniżej.Przykład: -0500 dla czasu w US Eastern Time%ZSkrót strefy czasowej. Niedostępne na Windows,
jak już napisano. Więcej informacji znajdziesz poniżej.Przykład: EST dla czasu w Eastern TimeZnaczniki daty i czasu------%cPreferowany znacznik daty i czasu w obecnej lokalizacjiPrzykład: Pon 05.02.2009 00:45:10 dla
February 5, 2009 at 12:45:10 AM%DTo samo co "%m/%d/%y"Przykład: 02/05/09 dla 02.05.2009%FTo samo co "%Y-%m-%d" (często używane w znacznikach dat baz danych)Przykład: 2009-02-05 dla 02.05.2009%sUniksowy znacznik czasu (to samo co funkcja time)Przykład: 305815200 dla 10.09.1979 08:40:00%xPreferowana reprezentacja daty w obecej lokalizacji, bez czasuPrzykład: 02/05/09 dla 05.02.2009Różne------%nZnak nowej linii ("\n")---%tTabulator ("\t")---%%Znak procenta ("%")---
W przeciwieństwie do ISO-9899:1999, system Sun Solaris podaje niedzielę jako 1. W wyniku
tego, %u może nie działać tak jak opisano to w tym
podręczniku.
Tylko dla Windows:
Modyfikator %e nie jest wspierany w Windowsowej
implementatacji tej funkcji. Aby otrzymać tą wartość, można użyć
modyfikatora %#d. Przykład poniżej
pokazuje jak napisać funkcję kompatybilną między platformami.
Modyfikatory %z i %Z zwracają
nazę strefy czasowej zamiast jej przesunięcia czy skrótu.
Tylko dla macOS i musl: Modyfikator %P nie jest
wspierany w implementacji tej funkcji dla macOS.
&date.timestamp.description;
&reftitle.returnvalues;
Zwraca łańcuch znaków sformatowany zgodnie z argumentem format
używając czasu podanego jako timestamp lub obecnego
czasu lokalnego, jeśli nie podano tego argumentu. Nazwy miesięcy i dni tygodnia oraz
inne ciągi znaków zależne od języka uwzględniają obecną lokalizację ustawioną
przez setlocale.
Funkcja zwraca &false; jeśli format jest pusty, zawiera niewspierane
modyfikatory konwersji lub jeśli zwrócony ciąg znaków byłby dłuższy niż
4095 znaków.
&reftitle.errors;
&date.timezone.errors.description;
Ponieważ wynik funkcji zależy od działającej pod spodem biblioteki C, niektóre modyfikatory
nie są wspierane. Na Windows, podanie nieznanego modyfikatora zaskutkuje
wygenerowaniem 5 wiadomości E_WARNING i zwróceniem
&false;. Na innych systemach możesz nie otrzymać żadnych wiadomości
E_WARNING, a wyjście może zawierać
nieskonwertowane modyfikatory.
&reftitle.changelog;
&Version;&Description;8.0.0
Parametr timestamp dopuszcza teraz &null;.
&reftitle.examples;
Ten przykład zadziała, jeżeli masz zainstalowane w systemie odpowiednie
lokalizacje.
Przykłady lokalizacji strftimePrzykład numerów tygodnia zgodnych z ISO 8601:1988Przykład wieloplatformowego użycia modyfikatora %eWyświetl wszystkie znane i nieznane formaty
'A full textual representation of the day',
'B' => 'Full month name, based on the locale',
'C' => 'Two digit representation of the century (year divided by 100, truncated to an integer)',
'D' => 'Same as "%m/%d/%y"',
'E' => '',
'F' => 'Same as "%Y-%m-%d"',
'G' => 'The full four-digit version of %g',
'H' => 'Two digit representation of the hour in 24-hour format',
'I' => 'Two digit representation of the hour in 12-hour format',
'J' => '',
'K' => '',
'L' => '',
'M' => 'Two digit representation of the minute',
'N' => '',
'O' => '',
'P' => 'lower-case "am" or "pm" based on the given time',
'Q' => '',
'R' => 'Same as "%H:%M"',
'S' => 'Two digit representation of the second',
'T' => 'Same as "%H:%M:%S"',
'U' => 'Week number of the given year, starting with the first Sunday as the first week',
'V' => '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',
'W' => 'A numeric representation of the week of the year, starting with the first Monday as the first week',
'X' => 'Preferred time representation based on locale, without the date',
'Y' => 'Four digit representation for the year',
'Z' => 'The time zone offset/abbreviation option NOT given by %z (depends on operating system)',
'a' => 'An abbreviated textual representation of the day',
'b' => 'Abbreviated month name, based on the locale',
'c' => 'Preferred date and time stamp based on local',
'd' => 'Two-digit day of the month (with leading zeros)',
'e' => 'Day of the month, with a space preceding single digits',
'f' => '',
'g' => 'Two digit representation of the year going by ISO-8601:1988 standards (see %V)',
'h' => 'Abbreviated month name, based on the locale (an alias of %b)',
'i' => '',
'j' => 'Day of the year, 3 digits with leading zeros',
'k' => 'Hour in 24-hour format, with a space preceding single digits',
'l' => 'Hour in 12-hour format, with a space preceding single digits',
'm' => 'Two digit representation of the month',
'n' => 'A newline character ("\n")',
'o' => '',
'p' => 'UPPER-CASE "AM" or "PM" based on the given time',
'q' => '',
'r' => 'Same as "%I:%M:%S %p"',
's' => 'Unix Epoch Time timestamp',
't' => 'A Tab character ("\t")',
'u' => 'ISO-8601 numeric representation of the day of the week',
'v' => '',
'w' => 'Numeric representation of the day of the week',
'x' => 'Preferred date representation based on locale, without the time',
'y' => 'Two digit representation of the year',
'z' => 'Either the time zone offset from UTC or the abbreviation (depends on operating system)',
'%' => 'A literal percentage character ("%")',
);
// 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('strlen', $strftimeValues));
// Report known formats
foreach ($strftimeValues as $format => $value) {
echo "Known format : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}
// Report unknown formats
foreach (array_diff_key($strftimeFormats, $strftimeValues) as $format => $description) {
echo "Unknown format : '{$format}' ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
}
]]>
&example.outputs.similar;
&reftitle.notes;
%G i %V, które bazują na numerach tygodni ISO 8601:1988, mogą zwrócić
nieprzewidziane (choć poprawne) wyniki jeżeli system numeracji nie został
dogłębnie zrozumiany. Zobacz przykłady dla %V na tej stronie podręcznika.
&reftitle.seealso;
IntlDateFormatter::formatDateTimeInterface::formatNarzędzie online do tworzenia formatów strftime()setlocalemktimestrptimegmstrftimeSpecyfikacja Open Group dla strftime