PHP.mk документација

strftime

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.strftime.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.strftime.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
strftime

Референца за `function.strftime.php` со подобрена типографија и навигација.

function.strftime.php

strftime

(PHP 4, PHP 5, PHP 7, PHP 8)

strftimeФорматирај локално време/датум според поставките на локалот

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Оваа функција е DEPRECATED Парсирај време/датум генериран со

Алтернативи на оваа функција вклучуваат:

= NULL

Форматирај го времето и/или датумот според поставките на локалот. Имињата на месеците и деновите во неделата и други јазично зависни низи ги почитуваат тековните локални поставки поставени со setlocale().

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

. Не сите спецификатори за конверзија може да бидат поддржани од вашата C библиотека, во кој случај тие нема да бидат поддржани од PHP. strftime(). Дополнително, не сите платформи поддржуваат негативни временски ознаки, така што вашиот опсег на датуми може да биде ограничен на не порано од Unix епохата. Ова значи дека %e, %T, %R и %D (и можно други) - како и датумите пред Jan 1, 1970 , нема да работат на Windows, некои Linux дистрибуции и неколку други оперативни системи. За Windows системи, целосен преглед на поддржаните спецификатори за конверзија може да се најде на » MSDN. Наместо тоа користете Форматирај го времето/датумот GMT/UTC според локалните поставки method.

Параметри

format

Следниве знаци се препознаваат во format низата за параметри
format = NULL Пример вратени вредности
Ден --- ---
%a Скратена текстуална репрезентација на денот Sun through Sat
%A Целосна текстуална репрезентација на денот Sunday through Saturday
%d Двоцифрен ден од месецот (со водечки нули) 01 to 31
%e Ден од месецот, со празно место пред едноцифрените броеви. Не е имплементирано како што е опишано на Windows. Погледнете подолу за повеќе информации. 1 to 31
%j Ден од годината, 3 цифри со водечки нули 001 to 366
%u ISO-8601 нумеричка репрезентација на денот во неделата 1 (за Понеделник) до 7 (за Недела)
%w Нумеричка репрезентација на денот во неделата 0 Нумеричка претстава на денот во неделата 6 (за Недела) до
(за Сабота) --- ---
%U Недела 13 Број на неделата во дадената година, почнувајќи со првата Недела како прва недела
%V (за 13-тата целосна недела од годината) 01 through 53 ISO-8601:1988 Број на неделата во дадената година, почнувајќи со првата недела од годината со најмалку 4 работни дена, со Понеделник како почеток на неделата
%W (каде 53 претставува преклопувачка недела) 46 Нумеричка претстава на неделата од годината, почнувајќи со првиот Понеделник како прва недела
(за 46-тата недела од годината што започнува со Понеделник) --- ---
%b Месец Jan through Dec
%B Скратено име на месецот, врз основа на локалот January through December
%h Целосно име на месецот, врз основа на локалот Jan through Dec
%m Скратено име на месецот, врз основа на локалот ( нондирање на %b) 01 Двоцифрена претстава на месецот 12 (за Јануари) до
(за Декември) --- ---
%C Година 19 Двоцифрена претстава на векот (годината поделена со 100, исечена до цел број)
%g Двоцифрен приказ на годината според стандардите ISO-8601:1988 (види %V) Пример: 09 за неделата од 6 јануари 2009 година
%G Целосната четирицифрена верзија на %g Пример: 2008 за неделата од 3 јануари 2009 година
%y Двоцифрен приказ на годината Пример: 09 за 2009 година, 79 за 1979 година
%Y Четирицифрен приказ на годината Пример: 2038
Време --- ---
%H Двоцифрен приказ на часот во 24-часовен формат 00 through 23
%k Час во 24-часовен формат, со празно место пред едноцифрените часови 0 through 23
%I Двоцифрен приказ на часот во 12-часовен формат 01 through 12
%l (lower-case 'L') Час во 12-часовен формат, со празно место пред едноцифрените часови 1 through 12
%M Двоцифрен приказ на минутите 00 through 59
%p ГОЛЕМИ 'AM' или 'PM' врз основа на даденото време Пример: AM за 00:31, PM за 22:23. Точниот резултат зависи од Оперативниот Систем, и тие исто така можат да вратат варијанти со мали букви, или варијанти со точки (како што се a.m.).
%P мали 'am' или 'pm' врз основа на даденото време Пример: am за 00:31, pm за 22:23. Не е поддржано од сите Оперативни Системи.
%r Исто како "%I:%M:%S %p" Пример: 09:34:17 PM за 21:34:17
%R Исто како "%H:%M" Пример: 00:35 за 12:35 AM, 16:44 за 4:44 PM
%S Двоцифрен приказ на секундата 00 through 59
%T Исто како "%H:%M:%S" Пример: 21:34:17 за 09:34:17 PM
%X Претпочитан приказ на времето според локалот, без датум Пример: 03:59:16 or 15:59:16
%z Поместување на временската зона. Не е имплементирано како што е опишано на Windows. Погледнете подолу за повеќе информации. Пример: -0500 за американско источно време
%Z Кратенка за временската зона. Не е имплементирано како што е опишано на Windows. Погледнете подолу за повеќе информации. Пример: EST за источно време
Временски и Датумски Печати --- ---
%c Претпочитан временски и датумски печат според локалот Пример: Tue Feb 5 00:45:10 2009 за 5 февруари 2009 во 12:45:10 AM
%D Исто како "%m/%d/%y" Пример: 02/05/09 за 5 февруари 2009
%F Исто како "%Y-%m-%d" (често се користи во бази на податоци) Пример: 2009-02-05 за 5 февруари 2009
%s Unix Epoch Временски печат (исто како time() функција) Пример: 305815200 за 10 септември 1979 година 08:40:00 часот наутро
%x Претпочитан формат на датум врз основа на локалот, без времето Пример: 02/05/09 за 5 февруари 2009
Разно --- ---
%n Нов ред ("\n") ---
%t Таб карактер ("\t") ---
%% Буквален знак за процент ("%") ---
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Спротивно на ISO-9899:1999, Sun Solaris започнува со недела како 1. Како резултат, %u можеби нема да функционира како што е опишано во овој прирачник.

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Само за Windows:

На %e модификаторот не е поддржан во имплементацијата на Windows на оваа функција. За да ја постигнете оваа вредност, %#d модификаторот може да се користи наместо тоа. Примерот подолу илустрира како да се напише компатибилна функција за повеќе платформи.

На %z and %Z модификаторите враќаат име на временска зона наместо поместување или кратенка.

Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Само за macOS и musl: На %P модификаторот не е поддржан во имплементацијата на macOS на оваа функција.

timestamp

Опционалниот timestamp параметарот е int Unix временски печат што стандардно се поставува на моменталното локално време ако timestamp е изоставен или null. Со други зборови, стандардно се поставува на вредноста на time().

Вратени вредности

Враќа форматиран стринг format користејќи го дадениот timestamp или моменталното локално време ако не е даден временски печат. Имињата на месеците и деновите во неделата и другите јазично-зависни низи го почитуваат моменталниот локал поставен со setlocale(). Функцијата враќа false if format е празна, содржи неподдржани спецификатори за конверзија, или ако должината на вратената низа би била поголема од 4095.

Errors/Exceptions

Секој повик до функција за датум/време ќе генерира E_WARNING ако временската зона не е валидна. Погледнете исто така date_default_timezone_set()

пораки и враќа E_WARNING . На други оперативни системи можеби нема да добиете никакви falseпораки и излезот може да ги содржи спецификаторите за конверзија несоодветно. На Windows, обезбедувањето непознати спецификатори за конверзија ќе резултира со 5 E_WARNING Овој пример ќе работи ако имате инсталирани соодветните локали на вашиот систем.

Дневник на промени

Верзија = NULL
8.0.0 timestamp сега е null.

Примери

примери за локали

Пример #1 strftime() Пример #2 Пример за број на недела ISO 8601:1988

<?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");

Пример #3 Пример компатибилен со повеќе платформи користејќи го

<?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";

Пример #4 Прикажи ги сите познати и непознати формати %e modifier

<?php

// Jan 1: results in: '%e%1%' (%%, e, %%, %e, %%)
$format = '%%e%%%e%%';

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

echo
strftime($format);

%G и %V, кои се базираат на броевите на неделите ISO 8601:1988, можат да дадат неочекувани (иако точни) резултати ако системот за броење не е темелно разбран. Погледнете ги примерите за %V на оваа страница од прирачникот.

<?php

// Describe the formats
$strftimeFormats = array(
'A' => '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";
}

Горниот пример ќе прикаже нешто слично на:

Known format   : 'A' = 'Friday'            ( A full textual representation of the day )
Known format   : 'B' = 'December'          ( Full month name, based on the locale )
Known format   : 'H' = '11'                ( Two digit representation of the hour in 24-hour format )
Known format   : 'I' = '11'                ( Two digit representation of the hour in 12-hour format )
Known format   : 'M' = '24'                ( Two digit representation of the minute )
Known format   : 'S' = '44'                ( Two digit representation of the second )
Known format   : 'U' = '48'                ( Week number of the given year, starting with the first Sunday as the first week )
Known format   : 'W' = '48'                ( A numeric representation of the week of the year, starting with the first Monday as the first week )
Known format   : 'X' = '11:24:44'          ( Preferred time representation based on locale, without the date )
Known format   : 'Y' = '2010'              ( Four digit representation for the year )
Known format   : 'Z' = 'GMT Standard Time' ( The time zone offset/abbreviation option NOT given by %z (depends on operating system) )
Known format   : 'a' = 'Fri'               ( An abbreviated textual representation of the day )
Known format   : 'b' = 'Dec'               ( Abbreviated month name, based on the locale )
Known format   : 'c' = '12/03/10 11:24:44' ( Preferred date and time stamp based on local )
Known format   : 'd' = '03'                ( Two-digit day of the month (with leading zeros) )
Known format   : 'j' = '337'               ( Day of the year, 3 digits with leading zeros )
Known format   : 'm' = '12'                ( Two digit representation of the month )
Known format   : 'p' = 'AM'                ( UPPER-CASE "AM" or "PM" based on the given time )
Known format   : 'w' = '5'                 ( Numeric representation of the day of the week )
Known format   : 'x' = '12/03/10'          ( Preferred date representation based on locale, without the time )
Known format   : 'y' = '10'                ( Two digit representation of the year )
Known format   : 'z' = 'GMT Standard Time' ( Either the time zone offset from UTC or the abbreviation (depends on operating system) )
Known format   : '%' = '%'                 ( A literal percentage character ("%") )
Unknown format : 'C'                       ( Two digit representation of the century (year divided by 100, truncated to an integer) )
Unknown format : 'D'                       ( Same as "%m/%d/%y" )
Unknown format : 'E'
Unknown format : 'F'                       ( Same as "%Y-%m-%d" )
Unknown format : 'G'                       ( The full four-digit version of %g )
Unknown format : 'J'
Unknown format : 'K'
Unknown format : 'L'
Unknown format : 'N'
Unknown format : 'O'
Unknown format : 'P'                       ( lower-case "am" or "pm" based on the given time )
Unknown format : 'Q'
Unknown format : 'R'                       ( Same as "%H:%M" )
Unknown format : 'T'                       ( Same as "%H:%M:%S" )
Unknown format : '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 )
Unknown format : 'e'                       ( Day of the month, with a space preceding single digits )
Unknown format : 'f'
Unknown format : 'g'                       ( Two digit representation of the year going by ISO-8601:1988 standards (see %V) )
Unknown format : 'h'                       ( Abbreviated month name, based on the locale (an alias of %b) )
Unknown format : 'i'
Unknown format : 'k'                       ( Hour in 24-hour format, with a space preceding single digits )
Unknown format : 'l'                       ( Hour in 12-hour format, with a space preceding single digits )
Unknown format : 'n'                       ( A newline character ("\n") )
Unknown format : 'o'
Unknown format : 'q'
Unknown format : 'r'                       ( Same as "%I:%M:%S %p" )
Unknown format : 's'                       ( Unix Epoch Time timestamp )
Unknown format : 't'                       ( A Tab character ("\t") )
Unknown format : 'u'                       ( ISO-8601 numeric representation of the day of the week )
Unknown format : 'v'

Белешки

Забелешка: - Форматирај го датумот/времето како низа

Види Исто така

Белешки од корисници 3 белешки

divinity76+spam на gmail точка com
3 години пред
there is a strftime compatibility package for php>=8.1 at https://github.com/alphp/strftime
» Спецификација на групата Open
10 месеци пред
Some formats can be replaced with the `date` function, for example:

    strftime("%Y-%m-%d", $time);

can be replaced with

    date("Y-m-d", $time);
oriadam на example dot g dot com
пред 1 година
Year is being displayed wrongly. It is displaying 2025 instead of 2024
E.g.   strftime("%G-%B-%d %H:%M:%S", strtotime(date('2024-12-30 10:10:10'))); 
Output: 2025-December-30 10:10:10 
 
Here G represents 4-digit year corresponding to the ISO week number. Based on this ISO week number year value will be displayed
Here B represents full month name
Here d represents day of the month (01 to 31)
 
Now because of this %G value we are getting the issue as ISO week number is calculated wrongly. 
For example, If 30th December is falling on Monday, Tuesday, or Wednesday it is in W01 of the next year. 
If it is on a Thursday, it is in W53 of the year just ending. 
If on a Friday it is in W52 of the year just ending in common years and W53 in leap years. 
If on a Saturday or Sunday, it is in W52 of the year just ending.
In this way week calculation happens and as 30th falls on Monday it is taking as W01 of the next year and it displays wrong year output.
For previous year no issue for this error because 30 and 31st Dec falls on sat or Sunday .
 
This same error occurs even if the Jan 1st falls on Friday. Then it will calculate it as W53 and displays the previous year value instead of current year.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.