Manual do PHP
Anterior |  | Próxima

# date

(PHP 3, PHP 4 , PHP 5)

date -- Formata a data e a hora local

## Descrição

string date ( string format [, int timestamp])

Retorna uma string de acordo com a string format dada usando o inteiro timestamp dado ou a hora atual local se nenhum timestamp é dado. Em outras palavras, timestamp é opcional e o padrão para o valor de time().

> Nota: A linha válida de um timestamp é tipicamente de Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (Estas são as datas que correspodem aos mínimos e máximos valores para um inteiro de 32-bit definido). No windows esta linha é limitada de 01-01-1970 para 19-01-2038.

> Nota: Para gerar um timestamp a partir de uma representação de string da data, você deve ser capaz de usar strtotime(). Adicionalmente, alguns bancos de dados têm funções para converter suas datas em timestamps (tais como a função do MySQL UNIX_TIMESTAMP).

Tabela 1. Os seguintes caracteres são reconhecidos no format parameter string

format character | Descrição | Exemplo de valores retornados
--- | --- | ---
a | Lowercase Ante meridiem and Post meridiem | am or pm
A | Uppercase Ante meridiem and Post meridiem | AM ou PM
B | Swatch Internet time | 000 até 999
d | Dia do mês, 2 digitos com leading zeros | 01 to 31
D | Uma representação textual de um dia, três letras | Mon through Sun
F | Uma representação textual de um mês, tal como janeiro ou Março | Janeiro a Dezembro
g | 12-hour formato de hora sem leading zeros | 1 a 12
G | 24-hour formato de hora sem leading zeros | 0 a 23
h | 12-hour formato de hora com leading zeros | 01 a 12
H | 24-hour formato de hora com leading zeros | 00 a 23
i | Minutos com leading zeros | 00 para 59
I (i maiúsculo) | Se a data está ou não em horário de verão | 1 Horário de Verão, 0 sem Horário de Verão.
j | Dia do mês sem leading zeros | 1 to 31
l ('L' minúsculo) | Uma representação completa textual de um dia da semana | Domingo a Sábado
L | Se é ano bissexto | 1 ano bissexto, 0 ano não bissexto.
m | Representação numérica de um mês, com leading zeros | 01 a 12
M | Uma representação textual curta de um mês, três letras | Jan a Dec
n | Representação numérica de um mês, sem leading zeros | 1 a 12
O | Diferença ao horário de Greenwich (GMT) em horas | Exemplo: +0200
r | RFC 2822 formatted date | Exemplo: Thu, 21 Dec 2000 16:01:07 +0200
s | Segundos, com leading zeros | 00 a 59
S | Sufixo ordinal inglês para o dia do mês, 2 caracteres | st, nd, rd ou th. Funciona bem com j
t | Número de dias do dado mês | 28 a 31
T | Timezone setting of this machine | Examples: EST, MDT ...
U | Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | See also time()
w | Representação numérica do dia da semana | 0 (para Domingo) a 6 (para Sábado)
W | Número da semana do ano ISO-8601, semanas começadas na segunda-feira (adicionado no PHP 4.1.0) | Exemplo: 42 (a 42nd (quadragésima segunda) semana do ano)
Y | Uma representação completa do ano, 4 dígitos | Examples: 1999 ou 2003
y | Representação do ano em dois dígitos | Examples: 99 ou 03
z | O dia do ano (começando de 0) | 0 a 365
Z | Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. | -43200 até 43200

Caracteres não reconhecidos no formato de serão impressos como são. O formato Z será sempre retornado 0 quando usar gmdate().

Exemplo 1. date() exemplos
`<?php // Prints something like: Wednesday echo date("l"); // Prints something like: Wednesday 15th of January 2003 05:51:38 AM echo date("l dS of F Y h:i:s A"); // Prints: July 1, 2000 is on a Saturday echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)); ?>`

Você pode prevenir um caracter conhecido no formato de string de um existente escapando-o com uma barra invertida antes dele. Se o caracter com a barra invertida já é uma sequência especial, você pode precisar também escapar a barra invertida.

Exemplo 2. Caracteres de escape em date()
`<?php // exibe algo como: Wednesday the 15th echo date("l \\t\h\e jS"); ?>`

É possível utilizar date() e mktime() juntos para encontrar datas no futuro ou no passado.

Exemplo 3. date() e mktime() exemplo
`<?php $tomorrow = mktime (0, 0, 0, date("m") , date("d")+1, date("Y")); $lastmonth = mktime (0, 0, 0, date("m")-1, date("d"), date("Y")); $nextyear = mktime (0, 0, 0, date("m"), date("d"), date("Y")+1); ?>`

> Nota: Esta pode ser mais confiável do que simplesmente adicionar ou subtrair o número de segundos em um dia ou mês para um timestamp devido ao horário de verão.

Alguns exemplos de formatação de date(). Note que você poderia escapar qualquer outro caracter, como algum que atualmente tenha um significado especial produzirá resultados indesejáveis, e outros caracteres poderiam assumir significados em futuras versões do PHP. Quando usar escape, certifique o uso de aspas simples para evitar caracteres como \n próprio para novas linhas.

Exemplo 4. Formatação de date()
`<?php // Assumindo que hoje é: March 10th, 2001, 5:16:18 pm $today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm $today = date("m.d.y"); // 03.10.01 $today = date("j, n, Y"); // 10, 3, 2001 $today = date("Ymd"); // 20010310 $today = date('h-i-s, j-m-y, it is w Day z '); // 05-16-17, 10-03-01, 1631 1618 6 Fripm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // It is the 10th day. $today = date("D M j G:i:s T Y"); // Sat Mar 10 15:16:08 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:17 m is month $today = date("H:i:s"); // 17:16:17 ?>`

Para formatar datas em outras línguas, você usaria as funções setlocale() e strftime() functions.

Veja também getlastmod(), gmdate(), mktime(), strftime() e time().

Anterior | Principal | Próxima
checkdate | Acima | getdate