Forum und email

date

(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).

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().

Example#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(000712000));
?>

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.

Example#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.

Example#3 date() e mktime() exemplo

<?php
$tomorrow  
mktime (000date("m")  , date("d")+1date("Y"));
$lastmonth mktime (000date("m")-1date("d"),  date("Y"));
$nextyear  mktime (000date("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.

Example#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().