<?php
// Описание форматов.
$strftimeFormats = array(
'A' => 'Полное название дня',
'B' => 'Полное имя месяца, в зависимости от локали',
'C' => 'Двухзначный номер столетия (год, деленный на 100, усеченный до целого)',
'D' => 'Тоже что и "%m/%d/%y"',
'E' => '',
'F' => 'Тоже что и "%Y-%m-%d"',
'G' => 'Четырехзначная версия %g',
'H' => 'Двухзначный номер часа в 24-часовом формате',
'I' => 'Двухзначный номер часа в 12-часовом формате',
'J' => '',
'K' => '',
'L' => '',
'M' => 'Двухзначный номер минуты',
'N' => '',
'O' => '',
'P' => '"am" или "pm" в зависимости от текущего времени, в нижнем регистре',
'Q' => '',
'R' => 'Тоже что и "%H:%M"',
'S' => 'Двухзначный номер секунды',
'T' => 'Тоже что и "%H:%M:%S"',
'U' => 'Номер недели указанного года, начиная с первого воскресенья в качестве первой недели',
'V' => 'Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счет начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника',
'W' => 'Номер недели указанного года, начиная с первого понедельника в качестве первой недели',
'X' => 'Предпочитаемое отображение времени в зависимости от локали, без даты',
'Y' => 'Четырехзначный номер года',
'Z' => 'Смещение временной зоны/аббревиатура, НЕ выдаваемая %z (зависит от операционной системы)',
'a' => 'Сокращенное название дня недели',
'b' => 'Сокращенное название месяца в зависимости от локали',
'c' => 'Предпочитаемое отображение даты и времени в зависимости от локали',
'd' => 'Двухзначный номер дня месяца (с ведущими нулями)',
'e' => 'День месяца, с ведущим пробелом, если он состоит из одной цифры',
'f' => '',
'g' => 'Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (см. %V)',
'h' => 'Сокращенное название месяца в зависимости от локали (псевдоним %b)',
'i' => '',
'j' => 'Номер дня в году, 3 цифры с ведущими нулями',
'k' => 'Час в 24-часовом формате, с ведущим пробелом перед одиночной цифрой',
'l' => 'Номер часа в 12-часовом формате, с ведущим пробелом, если он состоит из одной цифры',
'm' => 'Двухзначный номер месяца',
'n' => 'Символ новой строки ("\n")',
'o' => '',
'p' => '"AM" или "PM" в зависимости от указанного времени, в верхнем регистре',
'q' => '',
'r' => 'Тоже что и "%I:%M:%S %p"',
's' => 'Временная метка Эпохи Unix',
't' => 'Символ табуляции ("\t")',
'u' => 'Номер дня недели в соответствии со стандартом ISO-8601',
'v' => '',
'w' => 'Номер дня недели',
'x' => 'Предпочитаемое отображение даты в зависимости от локали, без времени',
'y' => 'Двухзначный номер года',
'z' => 'Смещение временной зоны относительно UTC или аббревиатура (зависит от операционной системы)',
'%' => 'Символ процента ("%")',
);
// Результаты.
$strftimeValues = array();
// Обрабатываем форматы и подавляем любые ошибки.
foreach($strftimeFormats as $format => $description){
if (False !== ($value = @strftime("%{$format}"))){
$strftimeValues[$format] = $value;
}
}
// Находим самое длинное значение
$maxValueLength = 2 + max(array_map('strlen', $strftimeValues));
// Отображаем известные форматы.
foreach($strftimeValues as $format => $value){
echo "Известный формат : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}
// Отображаем неизвестные форматы.
foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format => $description){
echo "Неизвестный формат : '{$format}' ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
}
?>
Результатом выполнения данного примера
будет что-то подобное:
Известный формат : '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'