Esta página describe los diferentes formatos de fecha que entiende el analizador de strtotime(), DateTime y date_create().
Descripción | Formato | Ejemplos |
---|---|---|
sufijos de día (en inglés) |
"st" | "nd" | "rd" | "th" | |
dd |
([0-2]?[0-9] | "3"[01]) sufijos de día ? |
"7th", "22nd", "31" |
DD |
"0" [0-9] | [1-2][0-9] | "3" [01] | "07", "31" |
m |
'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december' | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI" | "VII" | "VIII" | "IX" | "X" | "XI" | "XII" | |
M |
'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | |
mm |
"0"? [0-9] | "1"[0-2] | "0", "04", "7", "12" |
MM |
"0" [0-9] | "1"[0-2] | "00", "04", "07", "12" |
y |
[0-9]{1,4} | "00", "78", "08", "8", "2008" |
yy |
[0-9]{2} | "00", "08", "78" |
YY |
[0-9]{4} | "2000", "2008", "1978" |
Descripción | Formato | Ejemplos |
---|---|---|
Mes y día americanos | mm "/" dd |
"5/12", "10/27" |
Mes, día y año americanos | mm "/" dd "/" y |
"12/22/78", "1/17/2006", "1/17/6" |
Año de cuatro dígitos, mes y día con barras | YY "/" mm "/" dd |
"2008/6/30", "1978/12/22" |
Año de cuatro dígitos y mes (GNU) | YY "-" mm |
"2008-6", "2008-06", "1978-12" |
Año, mes y día con guiones | y "-" mm "-" dd |
"2008-6-30", "78-12-22", "8-6-21" |
Día, mes y año de cuatro dígitos, con puntos, tabulaciones o guiones | dd [.\t-] mm [.-] YY |
"30-6-2008", "22.12.1978" |
Día, mes y año de dos dígitos, con puntos o tabulaciones | dd [.\t] mm "." yy |
"30.6.08", "22\t12.78" |
Día, mes textual y año | dd ([ \t.-])* m ([ \t.-])* y |
"30-June 2008", "22DEC78", "14 III 1879" |
Mes textual y año de cuatro dígitos (el día se restablece a 1) | m ([ \t.-])* YY |
"June 2008", "DEC1978", "March 1879" |
Año de cuatro dígitos y mes textual (el día se restablece a 1) | YY ([ \t.-])* m |
"2008 June", "1978-XII", "1879.MArCH" |
Mes textual, día y año | m ([ .\t-])* dd [,.stndrh\t ]+ y |
"July 1st, 2008", "April 17, 1790", "May.9,78" |
Mes textual y día | m ([ .\t-])* dd [,.stndrh\t ]* |
"July 1st,", "Apr 17", "May.9" |
Día y mes textual | d ([ .\t-])* m |
"1 July", "17 Apr", "9.May" |
Abreviatura de mes, día y año | M "-" DD "-" y |
"May-09-78", "Apr-17-1790" |
Año, abreviatura de mes y día | y "-" M "-" DD |
"78-Dec-22", "1814-MAY-17" |
Año (y sólo el año) | YY |
"1978", "2008" |
Mes textual (y sólo el mes) | m |
"March", "jun", "DEC" |
Descripción | Formato | Ejemplos |
---|---|---|
Año, mes y día, de ocho dígitos | YY MM DD |
"15810726", "19780417", "18140517" |
Año de cuatro dígitos, mes y día con barras | YY "/" MM "/" DD |
"2008/06/30", "1978/12/22" |
Año de dos dígitos, mes y dís con guiones | yy "-" MM "-" DD |
"08-06-30", "78-12-22" |
Año de cuatro dígitos con signo opcional, mes y día | [+-]? YY "-" MM "-" DD |
"-0002-07-26", "+1978-04-17", "1814-05-17" |
Nota:
Para los formatos
y
eyy
, los años por debajo de 100 son tratados de manera especial cuando se emplean los símbolosy
oyy
. Si el año cae en el rango de 0 (inclusive) a 69 (inclusive), se añade 2000. Si el año cae en el rango de 70 (inclusive) a 99 (inclusive) se añade 1900. Esto significa que "00-01-01" se interpreta como "2000-01-01".
Nota:
El formato "Día, mes y año de dos dígitos, con puntos o tabulaciones" (
dd
[.\t]mm
"."yy
) solamente funciona con valores de años de 61 (inclusive) a 99 (inclusive); fuera de esos años, el formato de hora "HH
[.:]MM
[.:]SS
" tiene precedencia.
Nota:
El formato "Año (y sólo el año)" únicamente funciona si se ha encotrado una cadena de hora; de lo contrario, este formato es reconocido como
HH
MM
.
Nota:
Es posible poner en exceso y en defecto los formatos
dd
yDD
. Día 0 significa el último día del mes anterior, mientras que en exceso empieza a contar a partir del mes siguiente. Esto es, "2008-08-00" equivale a "2008-07-31", y "2008-06-31" equivale a "2008-07-01" (junio tiene sólo 30 días).Obsérvese que a paritr de PHP 5.1.0 el rango del día está restringido a 0-31 tal como se indicó en la expresión regular anterior. Por tanto, "2008-06-32" por ejemplo, no es una cadena de fecha válida.
También es posible poner en defecto los formatos
mm
yMM
con el valor 0. Un valor de mes de 0 significa diciemebre del año anterior. Por ejemplo, "2008-00-22" es equivalente a "2007-12-22".Si se combinan los dos hechos anteriores y se ponen por defecto el día y el mes, sucede lo siguiente: "2008-00-00" primero se convierte a "2007-12-00" que después se convierte a "2007-11-30". Esto también sucede con la cadena "0000-00-00", que se transforma en "-0001-11-30" (el año -1 en el calendario ISO 8601, el cuál es 2 A.C. en el calendario gregoriano "proléptico").