Полезные функции спецификаторов для PHP форматирования строк.
Информация взята с сайта (страницы) — fi1a/format
Доступные функции спецификаторов:
date — форматирование даты и времени;
sprintf — форматирование строки;
escape — преобразует специальные символы в HTML-сущности;
unescape — преобразует специальные HTML-сущности обратно в соответствующие символы;
memory — форматирование размера памяти (x.x Б, x.x КБ, x.x МБ, x.x ГБ, x.x ТБ, x.x ПБ).
Указание функции спецификатора следует после указания ключа с разделителем «|».
use Fi1a\Format\Formatter;
Formatter::format(‘{{0|sprintf(«04d»)}}-{{1|sprintf(«02d»)}}-{{2|sprintf(«02d»)}}’,[2016, 2, 27,]); // 2016-02-27
Модификаторы функций спецификаторов можно динамически задавать через массив со значениями.
use Fi1a\Format\Formatter;
Formatter::format(‘{{value|sprintf(modifier)}}’, [‘value’ => 100.5, ‘modifier’ => «01.2f»]); // 100.50
Спецификаторы функции sprintf
Указание функции спецификатора следует после указания ключа с разделителем «|».
Форматирование строк и чисел. Спецификаторы используемые в функции sprintf.
b — Аргумент рассматривается как целое число и печатается в бинарном представлении.
c — Аргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом.
d — Аргумент рассматривается как целое число и печатается как целое число со знаком.
e — Аргумент считается за число в научной нотации (т.е. 1.2e+2). Спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше).
E — Аналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).
f — Аргумент считается за число с плавающей точкой (с учетом локали).
F — Аргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3.
o — Аргумент рассматривается как целое число и печатается в восмеричном представлении.
s — Аргумент рассматривается и печатается как строка.
u — Аргумент рассматривается как целое число и печатается как беззнаковое целое число.
x — Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре).
X — Аргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре).
Использование символа заполнения
use Fi1a\Format\Formatter;
Formatter::format(‘{{0|sprintf(«\’.9d»)}}’, [123]); // ……123
Formatter::format(‘{{0|sprintf(«\’.09d»)}}’, [123]); // 000000123
Целое с лидирующими нулями
use Fi1a\Format\Formatter;
Formatter::format(‘{{0|sprintf(«04d»)}}-{{1|sprintf(«02d»)}}-{{2|sprintf(«02d»)}}’, [2020, 6, 7]); // 2020-06-07
Форматирование денежных единиц
use Fi1a\Format\Formatter;
Formatter::format(‘{{0|sprintf(«01.2f»)}}’, [100.5]); // 100.50
Спецификаторы функции date
Указание функции спецификатора следует после указания ключа с разделителем «|».
Форматирование даты и времени
Формат модификатора используемых в функции:
День
d — День месяца, 2 цифры с ведущим нулём (от 01 до 31).
D — Текстовое представление дня недели (от Пн до Вс).
j — День месяца без ведущего нуля (от 1 до 31).
l — Полное наименование дня недели (от Понедельник до Воскресенье).
N — Порядковый номер дня недели в соответствии со стандартом ISO 8601 (от 1 (понедельник) до 7 (воскресенье)).
S — Английский суффикс порядкового числительного дня месяца, 2 символа (st, nd, rd или th. Применяется совместно с j).
w — Порядковый номер дня недели (от 0 (воскресенье) до 6 (суббота)).
z — Порядковый номер дня в году (начиная с 0) (От 0 до 365).
Неделя
W — Порядковый номер недели года в соответствии со стандартом ISO 8601; недели начинаются с понедельника (начиная с 0) (Например: 42 (42-я неделя года)).
Месяц
F — Полное наименование месяца, например, Января или Марта (от Января до Марта).
f — Полное наименование месяца, например, Январь или Март (от Январь до Март).
m — Порядковый номер месяца с ведущим нулём (от 01 до 12).
M — Сокращённое наименование месяца, 3 символа (от Янв до Дек).
n — Порядковый номер месяца без ведущего нуля (от 1 до 12).
t — Количество дней в указанном месяце (от 28 до 31).
Год
L — Признак високосного года (1, если год високосный, иначе 0.).
o — Номер года в соответствии со стандартом ISO 8601. Имеет то же значение, что и Y, кроме случая, когда номер недели ISO (W) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. (Примеры: 1999 или 2003).
X — Расширенное полное числовое представление года, не менее 4 цифр, с — для годов до нашей эры и + для годов нашей эры. (Примеры: -0055, +0787, +1999, +10191).
x — Расширенное полное числовое представление, если требуется или стандартное полное числовое представление, если возможно (например, Y). Не менее четырёх цифр. Для годов до нашей эры указан префикс -. У годов после (и включая) 10000 префикс +. (Примеры: -0055, 0787, 1999, +10191).
Y — Полное числовое представление года, не менее 4 цифр, с — для годов до нашей эры. (Примеры: -0055, 0787, 1999, 2003, 10191.).
y — Номер года, 2 цифры (Примеры: 99, 03).
Время
a — Ante meridiem (лат. «до полудня») или Post meridiem (лат. «после полудня») в нижнем регистре (am или pm).
A — Ante meridiem или Post meridiem в верхнем регистре (AM или PM).
B — Время в формате Интернет-времени (альтернативной системы отсчёта времени суток) (от 000 до 999).
g — Часы в 12-часовом формате без ведущего нуля (от 1 до 12).
G — Часы в 24-часовом формате без ведущего нуля (от 0 до 23).
h — Часы в 12-часовом формате с ведущим нулём (от 01 до 12).
H — Часы в 24-часовом формате с ведущим нулём (от 00 до 23).
i — Минуты с ведущим нулём (от 00 до 59).
s — Секунды с ведущим нулём (от 00 до 59).
u — Микросекунды. (Например: 654321).
v — Микросекунды. (Пример: 654).
v — Микросекунды. (Пример: 654).
Часовой пояс
e — Идентификатор часового пояса (Примеры: UTC, GMT, Atlantic/Azores).
I — Признак летнего времени (1, если дата соответствует летнему времени, 0 в противном случае.).
O — Разница с временем по Гринвичу без двоеточия между часами и минутами (Например: +0200).
P — Разница с временем по Гринвичу с двоеточием между часами и минутами (Например: +02:00).
p — То же, что и P, но возвращает Z вместо +00:00 (доступен, начиная с PHP 8.0.0) (Например: +02:00).
T — Аббревиатура часового пояса, если известна; в противном случае смещение по Гринвичу. (Примеры: EST, MDT, +05).
Z — Смещение часового пояса в секундах. Для часовых поясов, расположенных западнее UTC, возвращаются отрицательные числа, а для расположенных восточнее UTC — положительные. (от -43200 до 50400).
Полная дата/время
c — Дата в формате стандарта ISO 8601 (2004-02-12T15:19:21+00:00).
r — Дата в формате » RFC 222/» RFC 5322 (Например: Thu, 21 Dec 2000 16:01:07 +0200).
U — Количество секунд, прошедших с начала Эпохи Unix (1 января 1970 00:00:00 GMT) (Смотрите также time()).
use Fi1a\Format\Formatter;
Formatter::format(‘{{foo|date(«d.m.Y»)}}’, [‘foo’ => time()]); // 28.09.2022
echo Formatter::format(‘{{|date(«d F Y»)}}’, [time()]); // 18 Октября 2022
echo Formatter::format(‘{{|date(«f»)}}’, [time()]); // Октябрь
Установить используемый формат по умолчанию:
use Fi1a\Format\Specifier\Date;
use Fi1a\Format\Formatter;
Formatter::format(‘{{foo|date}}’, [‘foo’ => time()]); // 28.09.2022 07:06:00
Date::setDefaultFormat(‘d.m.Y’);
Formatter::format(‘{{foo|date}}’, [‘foo’ => time()]); // 28.09.2022
Функция спецификатор escape
Преобразует специальные символы в HTML-сущности {{|escape(flags, encoding, doubleEncode)}}
use Fi1a\Format\Formatter;
Formatter::format(‘{{|escape}}’, [‘»test»‘]); // "test"
Функция спецификатор unescape
Преобразует специальные HTML-сущности обратно в соответствующие символы {{|escape(flags)}}
use Fi1a\Format\Formatter;
Formatter::format(‘{{|unescape}}’, [‘"test"’]); // «test»
Функция спецификатор memory
Форматирование размера памяти.
use Fi1a\Format\Formatter;
Formatter::format(‘{{|memory}}’, [1024]); // 1.0 КБ
Formatter::format(‘{{|memory(«B»)}}’, [1024]); // 1024.0 Б
Formatter::format(‘{{|memory}}’, [1024 * 1024]); // 1.0 МБ
Функция спецификатор time
Форматирование времени.
Доступные аргументы функции спецификатора:
seconds — результат форматирования в секундах;
minutes — результат форматирования в минутах;
hours — результат форматирования в часах;
days — результат форматирования в днях.
Если аргумент спецификатора не указан, форматирование осуществляется в наиболее подходящей размерности.
use Fi1a\Format\Formatter;
Formatter::format(‘{{|time}}’, [60 * 60]); // 1 ч.
Formatter::format(‘{{|time(«minutes»)}}’, [60 * 60]); // 60 мин.
Formatter::format(‘{{|time}}’, [2 * 24 * 60 * 60]); // 2 д.
Полную библиотеку можете увидеть на сайте — github.com/fi1a/format