(PHP 4, PHP 5)
strftime — Форматира местно време и дата съгласно локала
Връща низ, форматиран съгласно подадения форматиращ низ, за даден timestamp или текущото време, ако времеви отпечатък не е подаден. Имената на месеците и дните от седмицата, както и другите езиково зависими низове, използват текущо зададения локал със setlocale().
Следните спецификатори за преобразуване се разпознават във форматиращия низ:
Sun Solaris изглежда започва с неделя за 1, въпреки че ISO 9889:1999 (текущият C стандарт) ясно указва, че трябва да бъде понеделник.
Забележка: Възможно е не всичи преобразувателни спецификатори да се поддържат от вашата C бибилиотека и в този случай те няма да се поддържат от PHP функцията strftime(). Освен това, не всички платформи поддържат отрицателни времеви отпечатъци и затова вашата област от дати може да бъде ограничена до не по-рано от Unix епохата. Това означава, че %e, %T, %R и %D (възможно е да има и още) и дати преди 1 януари 1970 няма да работят на Windows, някои Linux дистрибуции, и няколко други операционни системи. Пълно описание на поддържаните преобразувателни спецификатори за Windows системи може да бъде намерено на този » MSDN сайт.
Example #1 Примери за strftime()
<?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");
?>
Този пример работи ако имате съответния локал инсталиран на вашата система.
Забележка: %G и %V, които се базират на номера на седмицата по ISO 8601:1988 може да дадат неочакван (но правилен) резултат ако бройната система не е добре разбрана. Вижте %V горе и примера по-долу.
Example #2 Пример за номер на седмицата по ISO 8601:1988
<?php
/* Декември 2002 / Януари 2003
ISOWk П В С Ч П С Н
----- ----------------------------
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 */
// Извежда: 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";
// Извежда: 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";
// Извежда: 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";
// Извежда: 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";
/* Декември 2004 / Януари 2005
ISOWk П В С Ч П С Н
----- ----------------------------
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 */
// Извежда: 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";
// Извежда: 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";
// Извежда: 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";
// Извежда: 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";
?>
Вж. също setlocale(), mktime() и Open Group спецификацията на » strftime().