strftime
(PHP 4, PHP 5, PHP 7, PHP 8)
strftime — Форматує поточну дату/час з урахуванням поточних налаштувань локалі
Увага
Функція оголошена застарілої у PHP 8.1.0. Покладатися на цю функцію не рекомендується.
Є такі альтернативи:
Опис
strftime(string $format, ?int $timestamp = null): string|false
Форматує дату/час з урахуванням поточних налаштувань локалі. Назви місяців, днів тижня та інших мовозалежних рядків будуть взяті відповідно до поточних налаштувань локалі, встановленої за допомогою функції setlocale()
Увага
Ваша C-бібліотека може не підтримувати всі форматуючі параметри, в цьому випадку вони будуть недоступні. strftime(). Крім того, не всі платформи підтримують негативні мітки часу, тому діапазон дат, що підтримується, на цих платформах буде обмежений епохою Unix. Це означає, що %e, %T, %R та %D (а можливо й інші параметри), як і дати до Jan 1, 1970
, не підтримуються Windows, деякими версіями Linux та іншими операційними системами. Список форматуючих символів, підтримуваних Windows, можна знайти на » сайті MSDN. Використовуйте натомість метод IntlDateFormatter::format()
Список параметрів
format
Розпізнаються наступні символи у рядку format
format | Опис | Приклад возвращаемых значений |
---|---|---|
День | --- | --- |
%a | Скорочена назва дня тижня | Від Sun доSat |
%A | Повна назва дня тижня | Від Sunday доSaturday |
%d | Двозначне уявлення дня місяця (з провідними нулями) | Від 01 до31 |
%e | День місяця з провідним пробілом, якщо він складається з однієї цифри. На Windows реалізовано негаразд, як описано. Докладніше дивіться нижче. | Від до31 |
%j | Порядковий номер на рік, 3 цифри з провідними нулями | Від 001 до366 |
%u | Порядковий номер дня тижня згідно з стандартом ISO-8601 | Від (понеділок) до 7 (Неділя) |
%w | Порядковий номер дня тижня | Від (неділя) до6 (субота) |
Тиждень | --- | --- |
%U | Порядковий номер тижня у зазначеному році, починаючи з першої неділі як перший тиждень | 13 (Для повного 13-го тижня року) |
%V | Порядковий номер тижня у зазначеному році відповідно до стандарту ISO-8601:1988, рахунок починається з того тижня, що містить щонайменше 4 дні, тиждень починається з понеділка | Від 01 до53 (де 53 вказує на тиждень, що перекривається) |
%W | Порядковий номер тижня у зазначеному році, починаючи з першого понеділка як перший тиждень | 46 (Для 46-го тижня року, що починається з понеділка) |
Місяць | --- | --- |
%b | Абревіатура назви місяця, відповідно до налаштувань локалі | Від Jan доDec |
%B | Повна назва місяця, відповідно до налаштувань локалі | Від January доDecember |
%h | Абревіатура назви місяця, відповідно до налаштувань локалі (псевдонім %b) | Від Jan доDec |
%m | Двозначний порядковий номер місяця | Від 01 (січень) до12 (грудень) |
Рік | --- | --- |
%C | Двозначний порядковий номер століття (рік, поділений на 100, усічений до цілого) | 19 для 20-го століття |
%g | Двозначний номер року відповідно до стандарту ISO-8601:1988 (див. %V) | Приклад: 09 для тижня 6 січня 2009 |
%G | Повна чотиризначна версія %g | Приклад: 2009 для тижня 3 січня 2009 |
%y | Двозначний порядковий номер року | Приклад: 09 для 2009, 79 для 1979 |
%Y | Чотиризначний номер року | Приклад: 2038 |
Час | --- | --- |
%H | Двозначний номер години у 24-годинному форматі | Від 00 до23 |
%k | Годинник у 24-годинному форматі, з пробілом перед одиночною цифрою | Від до23 |
%I | Двозначний номер години у 12-годинному форматі | Від 01 до12 |
%l (рядкова 'L') | Година у 12-годинному форматі, з пробілом перед одиночною цифрою | Від до12 |
%M | Двозначний номер хвилини | Від 00 до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 до59 |
%T | Те саме, що і "%H:%M:%S" | Приклад: 21:34:17 для 09:34:17 PM |
%X | Переважне відображення часу в залежності від локалі без дати | Приклад: 03:59:16 или15:59:16 |
%z | Зміщення часового поясу щодо UTC. Не реалізовано у Windows, подробиці дивіться нижче. | Приклад: -0500 для US Eastern Time |
%Z | Абревіатура часового поясу. Не реалізовано у Windows, подробиці дивіться нижче. | Приклад: EST для Eastern Time |
Мітки дати та часу | --- | --- |
%c | Переважне відображення дати та часу, залежно від поточної локалі | Приклад: Tue Feb 5 00:45:10 2009 для 5 лютого 2009 00:45:10 |
%D | Те саме, що і "%m/%d/%y" | Приклад: 02/05/09 для 5 лютого 2009 |
%F | Те саме, що і "%Y-%m-%d" (зазвичай використовується в мітках часу баз даних) | Приклад: 2009-02-05 для 5 лютого 2009 |
%s | Мітка часу Епохи Unix (те ж саме і функція time()) . | Приклад: 305815200 для 10 вересня 1979 08:40:00 |
%x | Переважне відображення дати без часу | Приклад: 02/05/09 для 5 лютого 2009 |
Різне | --- | --- |
%n | Символ перекладу рядка ("\n") | --- |
%t | Символ табуляції ("\t") | --- |
%% | Символ відсотка (%) | --- |
Увага
На відміну від ISO-9899:1999, у Sun Solaris неділі надається номер 1. Як результат, %u
може працювати не так, як описано в цьому посібнику.
Увага
Тільки для Windows:
Модифікатор %e
не підтримується в реалізації цієї функції у Windows. Для використання цього значення замість нього використовувати модифікатор %#d
. Приклад нижче ілюструє кросплатформну сумісну функцію.
Модифікатори %z
и%Z
повертають назву часового поясу замість усунення або абревіатури.
Увага
Тільки для macOS та Musl: модифікатор %P
не підтримується в реалізації цієї функції у macOS.
timestamp
Необов'язковий параметр timestamp
— це ціла (int) мітка часу, за умовчанням рівна поточному місцевому часу, якщо параметр timestamp
не вказано або дорівнює **null
**Говоря по другому, значение по умолчанию равно результату функцииtime()
Значення, що повертаються
Повертає рядок, відформатований відповідно до параметра format
, используя указанную временную меткуtimestamp
або поточний час, якщо мітка не була вказана. Назви місяців, днів тижня та інших мовозалежних рядків будуть взяті відповідно до поточних налаштувань локалі, встановленої за допомогою функції setlocale(). Функція повертає false
якщо параметр format
порожній, містить непідтримувані специфікатори перетворення або якщо довжина рядка, що повертається, буде більшою 4095
Помилки
Кожен виклик до функцій дати/часу при неправильних налаштуваннях часового поясу згенерує помилку рівня E_WARNING
, якщо часовий пояс неправильний. Дивіться також date_default_timezone_set()
Через те, що результат цієї функції залежить від C-бібліотеки, яка використовується в операційній системі, деякі модифікатори можуть не підтримуватися. Передача невідомого модифікатора в функцію Windows видасть 5 попереджень E_WARNING
і поверне false
. На інших операційних системах ви можете не отримати жодних попереджень E_WARNING
, а висновок може містити модифікатори без змін.
список змін
Версия | Опис |
---|---|
8.0.0 | timestamp тепер допускає значення null. |
Приклади
Цей приклад працюватиме, якщо на вашій системі встановлені відповідні локалі.
Приклад #1 Приклад використання функції strftime()** з різними локалями**
Loading...
Приклад #2 Приклад номерів тижня ISO 8601:1988
Loading...
Приклад #3 Кросплатформовий приклад використання модифікатора %e
Loading...
Приклад #4 Показуємо всі відомі та невідомі формати.
Loading...
Висновок наведеного прикладу буде схожим на:
Известный формат : 'A' = 'Friday' ( Полное название дня )
Известный формат : 'B' = 'December' ( Полное имя месяца, в зависимости от локали )
Известный формат : 'H' = '11' ( Двухзначный номер часа в 24-часовом формате )
Известный формат : 'I' = '11' ( Двухзначный номер часа в 12-часовом формате )
Известный формат : 'M' = '24' ( Двухзначный номер минуты )
Известный формат : 'S' = '44' ( Двухзначный номер секунды )
Известный формат : 'U' = '48' ( Номер недели указанного года, начиная с первого воскресенья в качестве первой недели )
Известный формат : 'W' = '48' ( Номер недели указанного года, начиная с первого понедельника в качестве первой недели )
Известный формат : 'X' = '11:24:44' ( Предпочитаемое отображение времени в зависимости от локали, без даты )
Известный формат : 'Y' = '2010' ( Четырёхзначный номер года )
Известный формат : 'Z' = 'GMT Standard Time' ( Смещение часового пояса /аббревиатура, НЕ выдаваемая %z (зависит от операционной системы) )
Известный формат : 'a' = 'Fri' ( Сокращённое название дня недели )
Известный формат : 'b' = 'Dec' ( Сокращённое название месяца в зависимости от локали )
Известный формат : 'c' = '12/03/10 11:24:44' ( Предпочитаемое отображение даты и времени в зависимости от локали )
Известный формат : 'd' = '03' ( Двухзначный номер дня месяца (с ведущими нулями) )
Известный формат : 'j' = '337' ( Номер дня в году, 3 цифры с ведущими нулями )
Известный формат : 'm' = '12' ( Двухзначный номер месяца )
Известный формат : 'p' = 'AM' ( "AM" или "PM" в зависимости от указанного времени, в верхнем регистре )
Известный формат : 'w' = '5' ( Номер дня недели )
Известный формат : 'x' = '12/03/10' ( Предпочитаемое отображение даты в зависимости от локали, без времени )
Известный формат : 'y' = '10' ( Двухзначный номер года )
Известный формат : 'z' = 'GMT Standard Time' ( Смещение часового пояса относительно UTC или аббревиатура (зависит от операционной системы) )
Известный формат : '%' = '%' ( Символ процента ("%") )
Неизвестный формат : 'C' ( Двухзначный номер столетия (год, делённый на 100, усечённый до целого) )
Неизвестный формат : 'D' ( Тоже что и "%m/%d/%y" )
Неизвестный формат : 'E'
Неизвестный формат : 'F' ( Тоже что и "%Y-%m-%d" )
Неизвестный формат : 'G' ( Четырёхзначная версия %g )
Неизвестный формат : 'J'
Неизвестный формат : 'K'
Неизвестный формат : 'L'
Неизвестный формат : 'N'
Неизвестный формат : 'O'
Неизвестный формат : 'P' ( "am" или "pm" в зависимости от текущего времени, в нижнем регистре )
Неизвестный формат : 'Q'
Неизвестный формат : 'R' ( Тоже что и "%H:%M" )
Неизвестный формат : 'T' ( Тоже что и "%H:%M:%S" )
Неизвестный формат : 'V' ( Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счёт начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника )
Неизвестный формат : 'e' ( День месяца, с ведущим пробелом, если он состоит из одной цифры )
Неизвестный формат : 'f'
Неизвестный формат : 'g' ( Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (смотрите %V) )
Неизвестный формат : 'h' ( Сокращённое название месяца в зависимости от локали (псевдоним %b) )
Неизвестный формат : 'i'
Неизвестный формат : 'k' ( Номер часа в 24-часовом формате, с ведущим пробелом, если он состоит из одной цифры )
Неизвестный формат : 'l' ( Номер часа в 12-часовом формате, с ведущим пробелом, если он состоит из одной цифры )
Неизвестный формат : 'n' ( Символ новой строки ("\n") )
Неизвестный формат : 'o'
Неизвестный формат : 'q'
Неизвестный формат : 'r' ( Тоже что и "%I:%M:%S %p" )
Неизвестный формат : 's' ( Временная метка Эпохи Unix )
Неизвестный формат : 't' ( Символ табуляции ("\t") )
Неизвестный формат : 'u' ( Номер дня недели в соответствии со стандартом ISO-8601 )
Неизвестный формат : 'v'
Примітки
Зауваження: Використання параметрів %G та %V, що базуються на днях тижня формату ISO 8601:1988, можуть давати несподівані (хоча і коректні) результати при неповному розумінні даної системи нумерації. Дивіться приклади %V на цій сторінці.
Дивіться також
- IntlDateFormatter::format() - Форматує значення дати/часу у вигляді рядка
- DateTimeInterface::format() - Повертає дату, відформатовану згідно з переданим форматом
- » Онлайн-утиліта складання часу у форматі strftime()
- setlocale() - Встановлює налаштування локалі
- mktime() - Повертає позначку часу Unix для заданої дати
- strptime() - Розбирає рядок дати/часу, згенерований функцією strftime
- gmstrftime() - Форматує дату/час за Грінвічем з урахуванням поточної локалі
- » Специфікація Open Group функціїstrftime()