Formatos de Data e Hora Suportados
PHP Manual

Formatos de Data

Esta página descreve os diferentes formatos de data que os interpretadores strtotime(), DateTime e date_create() entendem.

Simbolos Utilizados
Descrição Formato Exemplos
daysuf "st" | "nd" | "rd" | "th"  
dd ([0-2]?[0-9] | "3"[01]) daysuf? "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"
Notações Localizadas
Descrição Formato Exemplos
Dia e mês americano mm "/" dd "5/12", "10/27"
Dia, mês e ano americano mm "/" dd "/" y "12/22/78", "1/17/2006", "1/17/6"
Ano com quatro dígitos, mês e dia com barras YY "/" mm "/" dd "2008/6/30", "1978/12/22"
Ano com quatro dígitos e mês (GNU) YY "-" mm "2008-6", "2008-06", "1978-12"
Ano, mês e dia com traços y "-" mm "-" dd "2008-6-30", "78-12-22", "8-6-21"
Dia, mês e ano, com quatro dígitos, com pontos, tabulações ou traços dd [.\t-] mm [.-] YY "30-6-2008", "22.12.1978"
Dia, mês e ano, com dois dígitos, com pontos ou tabulações dd [.\t] mm "." yy "30.6.08", "22\t12.78"
Dia, mês textual e ano dd ([ \t.-])* m ([ \t.-])* y "30-June 2008", "22DEC78", "14 III 1879"
Mês textual e ano com quatro dígitos (O dia é redefinido para 1) m ([ \t.-])* YY "June 2008", "DEC1978", "March 1879"
Ano com quatro dígitos e mês textual (O dia é redefinido para 1) YY ([ \t.-])* m "2008 June", "1978-XII", "1879.MArCH"
Mês textual, dia e ano m ([ .\t-])* dd [,.stndrh\t ]+ y "July 1st, 2008", "April 17, 1790", "May.9,78"
Mês textual e dia m ([ .\t-])* dd [,.stndrh\t ]* "July 1st,", "Apr 17", "May.9"
Dia e mês textual d ([ .\t-])* m "1 July", "17 Apr", "9.May"
Mês abreviado, dia e ano M "-" DD "-" y "May-09-78", "Apr-17-1790"
Ano, mês abreviado e dia y "-" M "-" DD "78-Dec-22", "1814-MAY-17"
Ano (somente o ano) YY "1978", "2008"
Mês textual (somente o mês) m "March", "jun", "DEC"
Notação ISO8601
Descrição Formato Exemplos
Ano com oito dígitos, mês e dia YY MM DD "15810726", "19780417", "18140517"
Ano com quatro dígitos, mês e dia com barras YY "/" MM "/" DD "2008/06/30", "1978/12/22"
Ano com dois dígitos, mês e dia com traços yy "-" MM "-" DD "08-06-30", "78-12-22"
Ano com quatro dígitos, com sinal opcional, mês e dia [+-]? YY "-" MM "-" DD "-0002-07-26", "+1978-04-17", "1814-05-17"

Nota:

Para os formatos y e yy, anos abaixo de 100 são manipulados de maneira especial quando os símbolos y ou yy são utilizados. Se o ano cair no período de 0 (incluso) a 69 (incluso), 2000 anos são adicionados. Se o ano cair no período de 70 (incluso) a 99 (incluso), então 1900 são adicionados. Isso significa que "00-01-01" será interpretado como "2000-01-01".

Nota:

O formato "Dia, mês e ano com dois dígitos, com pontos ou tabulações" (dd [.\t] mm "." yy) somente funciona para valores de ano que variam 61 (incluso) até 99 (incluso) - fora destes anos, o formato de tempo "HH [.:] MM [.:] SS" possui precedência.

Nota:

O formato "Ano (somente o ano)", somente funcionará se uma string de tempo já foi encontrada -- caso contrário o formato será reconhecida como HH MM.

Nota:

É possível exceder positivamente e negativamente os formatos dd e DD. Dia 0 corresponde a último dia do mês anterior, assim como excedências positivas contam no próximo mês. Isso faz com que "2008-08-00" seja equivalente a "2008-07-31" e "2008-07-31" seja equivalente a "2008-07-01" (Junho possui somente 30 dias).

É possível exceder negativamente os formatos mm and MM com o valor 0. O valor de mês 0 corresponde a Dezembro do mês anterior. Como exemplo, "2008-00-22" é equivalente a "2007-12-22".

Se você combinar os dois fatos e exceder negativamente o dia e o mês, o que segue acontece: "2008-00-00" primeiro será convertido para "2007-12-00" que então será convertido para "2007-11-30". Isso também acontece com a string "0000-00-00", que é transformada em "-0001-11-30" (o ano -1 ano calendário ISO 8601, que é 2 anos DC no calendário que antecede o calendário Gregoriano).


Formatos de Data e Hora Suportados
PHP Manual