Funções de Data/Hora
PHP Manual

date

(PHP 4, PHP 5)

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

Parâmetros

format

A string de formato da data a ser mostrada. Veja as opções de formatação abaixo.

Os seguintes caracteres são reconhecidos na string do parâmetro format
Caractere de format Descrição Exemplo de valores retornados
Day --- ---
d Dia do mês, 2 digitos com preenchimento de zero 01 até 31
D Uma representação textual de um dia, três letras Mon até Sun
j Dia do mês sem preenchimento de zero 1 até 31
l ('L' minúsculo) A representação textual completa do dia da semana Sunday até Saturday
N Representação numérica ISO-8601 do dia da semana (adicionado no PHP 5.1.0) 1 (para Segunda) até 7 (para Domingo)
S Sufixo ordinal inglês para o dia do mês, 2 caracteres st, nd, rd ou th. Funciona bem com j
w Representação numérica do dia da semana 0 (para domingo) até 6 (para sábado)
z O dia do ano (começando do 0) 0 through 365
Semana --- ---
W Número do ano da semana ISO-8601, semanas começam na Segunda (adicionado no PHP 4.1.0) Exemplo: 42 (the 42nd week in the year)
Mês --- ---
F Um representação completa de um mês, como January ou March January até December
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
t Número de dias de um dado mês 28 through 31
Year --- ---
L Se está em um ano bissexto 1 se está em ano bissexto, 0 caso contrário.
o Número do ano ISO-8601. Este tem o mesmo valor como Y, exceto que se o número da semana ISO (W) pertence ao anterior ou próximo ano, o ano é usado ao invés. (adicionado no PHP 5.1.0) Exemplos: 1999 ou 2003
Y Uma representação de ano completa, 4 dígitos Exemplos: 1999 ou 2003
y Uma representação do ano com dois dígitos Exemplos: 99 ou 03
Tempo --- ---
a Antes/Depois de meio-dia em minúsculo am or pm
A Antes/Depois de meio-dia em maiúsculo AM or PM
B Swatch Internet time 000 até 999
g Formato 12-horas de uma hora sem preenchimento de zero 1 até 12
G Formato 24-horas de uma hora sem preenchimento de zero 0 até 23
h Formato 12-horas de uma hora com zero preenchendo à esquerda 01 até 12
H Formato 24-horas de uma hora com zero preenchendo à esquerda 00 até 23
i Minutos com zero preenchendo à esquerda 00 até 59
s Segundos, com zero preenchendo à esquerda 00 até 59
u Milisegundos (adicionado no PHP 5.2.2) Exemplo: 54321
Timezone --- ---
e Identificador de Timezone (adicionado no PHP 5.1.0) Exemplos: UTC, GMT, Atlantic/Azores
I (capital i) Se a data está ou não no horário de verão 1 se horário de verão, 0 caso contrário.
O Diferença para Greenwich time (GMT) em horas Exemplo: +0200
P Diferença para Greenwich time (GMT) com dois pontos entre horas e minutos (adicionado no PHP 5.1.3) Exemplo: +02:00
T Abreviação de Timezone Exemplos: EST, MDT ...
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é 50400
Full Date/Time --- ---
c ISO 8601 date (adicionado no PHP 5) 2004-02-12T15:19:21+00:00
r » RFC 2822 formatted date Exemplo: Thu, 21 Dec 2000 16:01:07 +0200
U Segundos desde a Época Unix (January 1 1970 00:00:00 GMT) Veja também time()

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

Nota:

Desde que esta função aceita somente integer timestamps o caractere de formato u é somente útil quando usando a função date_format() com um timestamp baseado pelo usuário criado com date_create().

timestamp

O parâmetro opcional timestamp é um integer Unix timestamp cujo padrão é a hora local se timestamp não for dado. Em outras palavras, o padrão é o valor de time().

Valor Retornado

Retorna um string da data formatada. Se um valor não-numérico é usado para timestamp, FALSE é retornado e um erro de nível E_WARNING é emitido.

Erros

Toda a chamada a uma função de data/hora irá gerar um se a zona da hora não for valida, e/ou uma mensagem E_STRICT ou E_WARNING se estiver usando a definição do sistema ou a variável de ambiente TZ. Veja também date_default_timezone_set()

Changelog

Versão Descrição
5.1.0 O intervalo válido de um timestamp é tipicamente de Sex, 13 Dez 1901 20:45:54 GMT to Ter, 19 Jan 2038 03:14:07 GMT. (Estas são as datas que correspondem ao valor mínimo e máximo para um inteiro com sinal de 32-bit). Contudo, antes do PHP 5.1.0 este intervalo foi limitado de 01-01-1970 para 19-01-2038 em alguns sistemas (e.g. Windows).
5.1.0

Agora emite E_STRICT e E_NOTICE em erros da zona de horário.

5.1.1 constantes útils do padrão de formato de data/hora que podem ser usados para especificar o parâmetro format.

Exemplos

Exemplo #1 Exemplos da date()

<?php
// Modifica a zona de tempo a ser utilizada. Disnovível desde o PHP 5.1
date_default_timezone_set('UTC');


// Exibe alguma coisa como: Monday
echo date("l");

// Exibe alguma coisa como: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Exibe: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " date("l"mktime(000712000));

/* utiliza as constantes do parâmetro de formato */
// Exibe alguma coisa como: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// Exibe alguma coisa como: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOMmktime(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.

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 Exemplo da date() e mktime()

<?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.

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() ao invés de date().

Notas

Nota:

Para gerar um timestamp de uma string da representação da data, você pode usar strtotime(). Adicionalmente, alguns banco de dados tem funções para converter os formatos de data para timestamps (como a função » UNIX_TIMESTAMP do MySQL).

Dica

Timestamp do início da requisição está disponível na $_SERVER['REQUEST_TIME'] desde o PHP 5.1.

Veja Também


Funções de Data/Hora
PHP Manual