<?php
// Describir los formatos.
$formatos_strftime = array(
'A' => 'Una representación textual completa del día',
'B' => 'Nombre del mes completo, basado en el localismo',
'C' => 'Representación de dos dígitos del siglo (año dividido entre 100, truncado a un entero)',
'D' => 'Lo mismo que "%m/%d/%y"',
'E' => '',
'F' => 'Lo mismo que "%Y-%m-%d"',
'G' => 'La versión completa de cuatro dígitos de %g',
'H' => 'Representación de dos dígitos de la hora en formato de 24 horas',
'I' => 'Representación de dos dígitos de la hora en formato de 12 horas',
'J' => '',
'K' => '',
'L' => '',
'M' => 'Representación de dos dígitos de los minutos',
'N' => '',
'O' => '',
'P' => '"am" o "pm" en minúsculas basados en la hora dada',
'Q' => '',
'R' => 'Lo mismo que "%H:%M"',
'S' => 'Representación de dos dígitos de los segundos',
'T' => 'Lo mismo que "%H:%M:%S"',
'U' => 'Número de semana del año dado, comenzando con el primer domingo como la primera semana',
'V' => 'Número de semana del año dado del ISO-8601:1988, comenzando con la primera semana del año con al menos 4 días de semana, con el lunes como principio de la semana',
'W' => 'Una representación numérica de la semana del año, comenzando con el primer domingo como la primera semana',
'X' => 'Representación preferida de la hora basda en el localismo, sin la fecha',
'Y' => 'Representación de cuatro dígitos del año',
'Z' => 'La opción de índice/abreviatura de la zona horaria NO dada por %z (depende del sistema operativo)',
'a' => 'Una representación textual abreviada del día',
'b' => 'Nombre del mes abreviado, basado en el localismo',
'c' => 'Marca preferida de la fecha y hora basadas en el localismo',
'd' => 'El día del mes con dos dígitos (con ceros iniciales)',
'e' => 'El día del mes, con un espacio precediendo a los dígitos simples',
'f' => '',
'g' => 'Representación de dos dígitos del año por el estándar ISO-8601:1988 (véase %V)',
'h' => 'Nombre del mes abreviado, basado en el localismo (un alias de %b)',
'i' => '',
'j' => 'Día del año, tres dígitos con ceros iniciales',
'k' => 'La hora en formato de 24 horas, con un espacio precediendo a los dígitos simples',
'l' => 'La hora en formato de 12 horas, con un espacio precediendo a los dígitos simples',
'm' => 'Representación de dos dígitos del mes',
'n' => 'Un carácter de nueva línea ("\n")',
'o' => '',
'p' => '"AM" o "PM" en MAYÚSCULAS basados en la hora dada',
'q' => '',
'r' => 'Lo mismo que "%I:%M:%S %p"',
's' => 'Marca temporal del instante de la Época Unix',
't' => 'Un carácter de tabulación ("\t")',
'u' => 'Representación numérica del día de la semana del ISO-8601',
'v' => '',
'w' => 'Representación numérica del día de la semana',
'x' => 'Representación preferida de la fecha basda en la configuración local, sin la hora',
'y' => 'Representación de dos dígitos del año',
'z' => 'El índice de la zona horaria UTC o la abreviatura (depende del sistema operativo)',
'%' => 'Un carácter de porcentaje literal ("%")',
);
// Resultados.
$valores_strftime = array();
// Evaluar los formatos, mientras suprime cualquier error.
foreach($formatos_strftime as $formato => $descripción){
if (False !== ($valor = @strftime("%{$formato}"))){
$valores_strftime[$formato] = $valor;
}
}
// Encontrar el valor más largo.
$longitudValorMáx = 2 + max(array_map('strlen', $valores_strftime));
// Notificar los formatos conocidos.
foreach($valores_strftime as $formato => $valor){
echo "Formato conocido : '{$formato}' = ", str_pad("'{$valor}'", $longitudValorMáx), " ( {$formatos_strftime[$formato]} )\n";
}
// Notificar los formatos desconocidos.
foreach(array_diff_key($formatos_strftime, $valores_strftime) as $formato => $descripción){
echo "Formato desconocido : '{$formato}' ", str_pad(' ', $longitudValorMáx), ($descripción ? " ( {$descripción} )" : ''), "\n";
}
?>
El resultado del ejemplo
sería algo similar a:
Formato conocido : 'A' = 'Friday' ( Una representación textual completa del día )
Formato conocido : 'B' = 'December' ( Nombre del mes completo, basado en el localismo )
Formato conocido : 'H' = '11' ( Representación de dos dígitos de la hora en formato de 24 horas )
Formato conocido : 'I' = '11' ( Representación de dos dígitos de la hora en formato de 12 horas )
Formato conocido : 'M' = '24' ( Representación de dos dígitos de los minutos )
Formato conocido : 'S' = '44' ( Representación de dos dígitos de los segundos )
Formato conocido : 'U' = '48' ( Número de semana del año dado, comenzando con el primer domingo como la primera semana )
Formato conocido : 'W' = '48' ( Una representación numérica de la semana del año, comenzando con el primer domingo como la primera semana )
Formato conocido : 'X' = '11:24:44' ( Representación preferida de la hora basda en el localismo, sin la fecha )
Formato conocido : 'Y' = '2010' ( Representación de cuatro dígitos del año )
Formato conocido : 'Z' = 'GMT Standard Time' ( La opción de índice/abreviatura de la zona horaria NO dada por %z (depende del sistema operativo) )
Formato conocido : 'a' = 'Fri' ( Una representación textual abreviada del día )
Formato conocido : 'b' = 'Dec' ( Nombre del mes abreviado, basado en el localismo )
Formato conocido : 'c' = '12/03/10 11:24:44' ( Marca preferida de la fecha y hora basadas en el localismo )
Formato conocido : 'd' = '03' ( El día del mes con dos dígitos (con ceros iniciales) )
Formato conocido : 'j' = '337' ( Día del año, tres dígitos con ceros iniciales )
Formato conocido : 'm' = '12' ( Representación de dos dígitos del mes )
Formato conocido : 'p' = 'AM' ( "AM" o "PM" en MAYÚSCULAS basados en la hora dada )
Formato conocido : 'w' = '5' ( Representación numérica del día de la semana )
Formato conocido : 'x' = '12/03/10' ( Representación preferida de la fecha basda en la configuración local, sin la hora )
Formato conocido : 'y' = '10' ( Representación de dos dígitos del año )
Formato conocido : 'z' = 'GMT Standard Time' ( El índice de la zona horaria UTC o la abreviatura (depende del sistema operativo) )
Formato conocido : '%' = '%' ( Un carácter de porcentaje literal ("%") )
Formato desconocido : 'C' ( Representación de dos dígitos del siglo (año dividido entre 100, truncado a un entero) )
Formato desconocido : 'D' ( Lo mismo que "%m/%d/%y" )
Formato desconocido : 'E'
Formato desconocido : 'F' ( Lo mismo que "%Y-%m-%d" )
Formato desconocido : 'G' ( La versión completa de cuatro dígitos de %g )
Formato desconocido : 'J'
Formato desconocido : 'K'
Formato desconocido : 'L'
Formato desconocido : 'N'
Formato desconocido : 'O'
Formato desconocido : 'P' ( "am" o "pm" en minúsculas basados en la hora dada )
Formato desconocido : 'Q'
Formato desconocido : 'R' ( Lo mismo que "%H:%M" )
Formato desconocido : 'T' ( Lo mismo que "%H:%M:%S" )
Formato desconocido : 'V' ( Número de semana del año dado del ISO-8601:1988, comenzando con la primera semana del año con al menos 4 días de semana, con el lunes como principio de la semana )
Formato desconocido : 'e' ( El día del mes, con un espacio precediendo a los dígitos simples )
Formato desconocido : 'f'
Formato desconocido : 'g' ( Representación de dos dígitos del año por el estándar ISO-8601:1988 (véase %V) )
Formato desconocido : 'h' ( Nombre del mes abreviado, basado en el localismo (un alias de %b) )
Formato desconocido : 'i'
Formato desconocido : 'k' ( La hora en formato de 24 horas, con un espacio precediendo a los dígitos simples )
Formato desconocido : 'l' ( La hora en formato de 12 horas, con un espacio precediendo a los dígitos simples )
Formato desconocido : 'n' ( Un carácter de nueva línea ("\n") )
Formato desconocido : 'o'
Formato desconocido : 'q'
Formato desconocido : 'r' ( Lo mismo que "%I:%M:%S %p" )
Formato desconocido : 's' ( Marca temporal del instante de la Época Unix )
Formato desconocido : 't' ( Un carácter de tabulación ("\t") )
Formato desconocido : 'u' ( Representación numérica del día de la semana del ISO-8601 )
Formato desconocido : 'v'