diff --git a/reference/datetime/functions/strftime.xml b/reference/datetime/functions/strftime.xml index c203078495..8bdadd20b7 100644 --- a/reference/datetime/functions/strftime.xml +++ b/reference/datetime/functions/strftime.xml @@ -479,6 +479,153 @@ echo strftime($format); + + + Display all known and unknown formats. + + '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' => '', + 'l' => 'Hour in 12-hour format, with a space preceeding 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"; +} +]]> + + &example.outputs.similar; + + + + +