strftimeFormatea una fecha/hora local según una configuración local
&reftitle.description;
stringstrftimestringformatinttimestamptime()
Formatea una fecha/hora local según la configuración local. Los nombres del mes y del día
de la semana y otras cadenas dependientes del lenguaje respetan el localismo establecido
con setlocale.
No todos los especificadores de conversión pueden estar soportados por su biblioteca C, en cuyo
caso no estarán soportados por la función strftime de PHP.
Además, no todas las plataformas soportan marcas temporales negativas, por lo que el
rango de fechas puede estar limitado a fechas que no sean anteriores a la época Unix.
Eso significa que %e, %T, %R y, %D (y posiblemente otros), así como las fechas anteriores al
1 de enero de 1970, no funcionarán en Windows, en algunas distribucioes de Linux,
y en otros pocos sistemas operativos. Para los sistemas Windows, se puede encontrar un resumen
de los especificadores de conversión soportados en
MSDN.
&reftitle.parameters;
format
Los siguientes caracteres están reconocidos en el
parámetro de cadena formatformatDescripciónEjemplo de valores devueltosDía------%aUna representación textual abreviada del díadom hasta sáb%AUna representación textual completa del díadomingo hasta sábado%dEl día del mes con dos dígitos (con ceros iniciales)01 a 31%e
El día del mes, con un espacio precediendo a los dígitos simples. No
está implementado como está descrito en Windows. Véase más abajo para más información.
1 a 31%jDía del año, tres dígitos con ceros iniciales001 a 366%uRepresentación numérica del día de la semana del ISO-86011 (para lunes) hasta 7 (para domingo)%wRepresentación numérica del día de la semana0 (para domingo) hasta 6 (para sábado)Semana------%UNúmero de semana del año dado, comenzando con el primer
domingo como la primera semana13 (para la 13ª semana completa del año)%VNú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 semana01 hasta 53 (donde 53
cuenta para una semana traslapada)%WUna representación numérica de la semana del año, comenzando
con el primer domingo como la primera semana46 (para la 46ª semana del año comenzando
con un lunes)Mes------%bNombre del mes abreviado, basado en el localismoene hasta dic%BNombre del mes completo, basado en el localismoenero hasta diciembre%hNombre del mes abreviado, basado en el localismo (un alias de %b)ene hasta dic%mRepresentación de dos dígitos del mes01 (para enero) hasta 12 (para diciembre)Año------%CRepresentación de dos dígitos del siglo (año dividido entre 100, truncado a un entero)19 para el Siglo XX%gRepresentación de dos dígitos del año por el estándar ISO-8601:1988 (véase %V)Ejemplo: 09 para la semana del 6 de enero de 2009%GLa versión completa de cuatro dígitos de %gEjemplo: 2008 para la semana del 3 de Enero de 2009%yRepresentación de dos dígitos del añoEjemplo: 09 para 2009, 79 para 1979%YRepresentación de cuatro dígitos del añoEjemplo: 2038Hora------%HRepresentación de dos dígitos de la hora en formato de 24 horas00 hasta 23%kRepresentación de dos dígitos de la hora en formato de 24 horas, con
un espacio precediendo a los dígitos simples 0 hasta 23%IRepresentación de dos dígitos de la hora en formato de 12 horas01 hasta 12%l ('L' minúscula)La hora en formato de 12 horas, con un espacio precediendo a los dígitos simples 1 hasta 12%MRepresentación de dos dígitos de los minutos00 hasta 59%p"AM" o "PM" en MAYÚSCULAS basados en la hora dadaEjemplo: AM para 00:31, PM para 22:23%P"am" o "pm" en minúsculas basados en la hora dadaEjemplo: am para 00:31, pm para 22:23%rLo mismo que "%I:%M:%S %p"Ejemplo: 09:34:17 PM para 21:34:17%RLo mismo que "%H:%M"Ejemplo: 00:35 para 12:35 AM, 16:44 para 4:44 PM%SRepresentación de dos dígitos de los segundos00 hasta 59%TLo mismo que "%H:%M:%S"Ejemplo: 21:34:17 para 09:34:17 PM%XRepresentación preferida de la hora basda en el localismo, sin la fechaEjemplo: 03:59:16 o 15:59:16%zEl índice de la zona horaria. No implementado como está descrito en
Windows. Véase más abajo para más información.Ejemplo: -0500 para Hora del Este de EEUU%ZLa abreviatura de la zona horaria No implementado como está descrito en
Windows. Véase más abajo para más información.Ejemplo: EST para Hora del EsteMarcas de fecha y hora------%cMarca preferida de la fecha y hora basadas en el localismoEjemplo: Tue Feb 5 00:45:10 2009 para
el 5 de febrero de 2009 a las 12:45:10 AM%DLo mismo que "%m/%d/%y"Ejemplo: 02/05/09 para el 5 de febrero de 2009%FLo mismo que "%Y-%m-%d" (normalmente usado en las marcas de fecha de bases de datos)Ejemplo: 2009-02-05 para el 5 de febrero de 2009%sMarca temporal del instante de la Época Unix (lo mismo que la función
time)Ejemplo: 305815200 para el 10 de septiembre de 1979 08:40:00 AM%xRepresentación preferida de la fecha basda en la configuración local, sin la horaEjemplo: 02/05/09 para el 5 de febrero de 2009Miscelánea------%nUn carácter de nueva línea ("\n")---%tUn carácter de tabulación ("\t")---%%Un carácter de porcentaje literal ("%")---
La longitud máxima de este parámetro es de 1023 caracteres.
A diferencia del ISO-9899:1999, Solaris de Sun comienza con el domingo como 1. Como
resultado, %u podría no funcionar como está descrito en este
manual.
Solamente para Windows:
El modificador %e no está soportado en la implementación
para Windows de esta función. Para obtener este valor se puede usar
en su lugar el modificador %#d. El ejemplo de abajo
ilustra cómo escribir una función multiplataforma compatible.
Los modificadores %z y %Z
devuelven el nombre de la zona horaria en lugar del índice o de la abreviatura.
Solamente para Mac OS X: El modificador %P
no está soportado en la implementación para Mac OS X de esta función.
&date.timestamp.description;
&reftitle.returnvalues;
Devuelve una cadena formateada según format
empleando el parámetro timestamp dado o el instante
local actual si no se da una marca temporal. Los nombres del mes y del día de la semana y
otras cadenas dependientes del lenguaje respetan el localismo establecido
con setlocale.
&reftitle.errors;
&date.timezone.errors.description;
Ya que la salida depende de la biblioteca C subyacente, algunos especificadores
de conversión no están soportados. En Windows, proporcionar especificadores de
conversión desconocidos resultará en 5 mensajes E_WARNING y
devolverá &false;. En otros sistemas operativos podría no obtenerse ningún
mensaje E_WARNING y la salida podría contener los
especificadores de conversión no convertidos.
&reftitle.changelog;
&Version;&Description;
&date.timezone.errors.changelog;
&reftitle.examples;
Este ejemplo funcionará si se tienen instalados los localismos respectivos
en el sistema.
Ejemplos de localismos con strftime
]]>
Ejemplo de número de semana del ISO 8601:1988
]]>
Ejemplo multiplataforma compatible del modificador %e
]]>
Mostrar todos los formatos conocidos y desconocidos.
'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";
}
?>
]]>
&example.outputs.similar;
&reftitle.notes;
%G y %V, los cuales están basados en el número de semana del ISO 8601:1988, pueden
dar resultados inesperados (aunque correctos) si el sistema numérico
no se entendió perfectamente. Véanse los ejemplos de %V en esta página del manual.
&reftitle.seealso;
Herramienta de diseño del formato de strftime() en líneasetlocalemktimestrptimegmstrftimeEspecificación de strftime del Open Group