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 characterDescriçãoExemplo de valores retornados
aLowercase Ante meridiem and Post meridiemam or pm
AUppercase Ante meridiem and Post meridiemAM ou PM
BSwatch Internet time000 até 999
dDia do mês, 2 digitos com leading zeros01 to 31
DUma representação textual de um dia, três letrasMon through Sun
FUma representação textual de um mês, tal como janeiro ou MarçoJaneiro a Dezembro
g12-hour formato de hora sem leading zeros1 a 12
G24-hour formato de hora sem leading zeros0 a 23
h12-hour formato de hora com leading zeros01 a 12
H24-hour formato de hora com leading zeros00 a 23
iMinutos com leading zeros00 para 59
I (i maiúsculo)Se a data está ou não em horário de verão1 Horário de Verão, 0 sem Horário de Verão.
jDia do mês sem leading zeros1 to 31
l ('L' minúsculo)Uma representação completa textual de um dia da semanaDomingo a Sábado
LSe é ano bissexto1 ano bissexto, 0 ano não bissexto.
mRepresentação numérica de um mês, com leading zeros01 a 12
MUma representação textual curta de um mês, três letrasJan a Dec
nRepresentação numérica de um mês, sem leading zeros1 a 12
ODiferença ao horário de Greenwich (GMT) em horasExemplo: +0200
rRFC 2822 formatted dateExemplo: Thu, 21 Dec 2000 16:01:07 +0200
sSegundos, com leading zeros00 a 59
SSufixo ordinal inglês para o dia do mês, 2 caracteres st, nd, rd ou th. Funciona bem com j
tNúmero de dias do dado mês28 a 31
TTimezone setting of this machineExamples: EST, MDT ...
USeconds since the Unix Epoch (January 1 1970 00:00:00 GMT)See also time()
wRepresentação numérica do dia da semana0 (para Domingo) a 6 (para Sábado)
WNú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)
YUma representação completa do ano, 4 dígitosExamples: 1999 ou 2003
yRepresentação do ano em dois dígitosExamples: 99 ou 03
zO dia do ano (começando de 0)0 a 365
ZTimezone 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().