Funções de Data/Hora
PHP Manual

date

(PHP 4, PHP 5, PHP 7)

dateFormata a data e a hora local

Descrição

string date ( string $format [, int $timestamp ] )

Retorna uma string de acordo com a string de formato informada usando o inteiro timestamp informado, ou a hora atual local se nenhum timestamp for informado. Em outras palavras, o parâmetro timestamp é opcional e padronizado para o valor de time().

Parâmetros

format

A string de formatação da data a ser mostrada. Veja as opções de formatação abaixo. Também existem diversas constantes predefinidas de data que podem ser utilizadas em substituição, por exemplo, a constante DATE_RSS contêm a string de formatação 'D, d M Y H:i:s'.

Os seguintes caracteres são reconhecidos na string do parâmetro format
Caractere de format Descrição Exemplo de valores retornados
Dia --- ---
d Dia do mês, 2 dígitos com zero à esquerda 01 até 31
D Uma representação textual de um dia, três letras Mon até Sun
j Dia do mês sem zero à esquerda 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 (iniciando em 0) 0 até 365
Semana --- ---
W Número do ano da semana ISO-8601, começa na Segunda (adicionado no PHP 4.1.0) Exemplo: 42 (a 42ª semana do ano)
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 zero à esquerda 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 zero à esquerda 1 a 12
t Número de dias de um dado mês 28 até 31
Ano --- ---
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 zero à esquerda 1 até 12
G Formato 24-horas de uma hora sem zero à esquerda 0 até 23
h Formato 12-horas de uma hora com zero à esquerda 01 até 12
H Formato 24-horas de uma hora com zero à esquerda 00 até 23
i Minutos com zero à esquerda 00 até 59
s Segundos, com zero à esquerda 00 até 59
u Microssegundos (adicionado no PHP 5.2.2). Note que a função date() sempre gerará 000000, já que aceita um parâmetro integer, enquanto que DateTime::format() possui suporte a microssegundos se DateTime foi criado com microssegundos. Example: 654321
Fuso horário --- ---
e Identificador do fuso horário (adicionado no PHP 5.1.0) Exemplos: UTC, GMT, Atlantic/Azores
I (i maiúsculo) 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 Deslocamento ao Horário de Greenwish (GMT) em horas Exemplo: +0200
P Deslocamento ao Horário de Greenwish (GMT) com dois pontos entre horas e minutos (adicionado no PHP 5.1.3) Exemplo: +02:00
T Abreviação do fuso horário Exemplos: EST, MDT ...
Z Deslocamento, em segundos, do fuso horário. O deslocamento para fusos horários a oeste de UTC sempre será negativa, e para aqueles à leste de UTC sempre será positiva. -43200 até 50400
Data/Hora completa --- ---
c Data ISO 8601 (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 Unix Epoch (January 1 1970 00:00:00 GMT) Veja também time()

Caracteres não reconhecidos na string de formatação serão impressos como são. O formato Z será sempre retornará 0 quando usar gmdate().

Nota:

Sabendo que esta função aceita somente timestamps integer o caractere de formatação u é útil somente quando utilizado com a função date_format() com um timestamp do 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 informado. Em outras palavras, o padrão é o valor da função time().

Valor Retornado

Retorna uma 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

Todas as chamadas a funções de data/hora gerarão um E_NOTICE se o fuso horário não for válido, e/ou uma mensagem E_STRICT ou E_WARNING se utilizar as configurações 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 até 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, em versões anteriores ao PHP 5.1.0 este intervalo era limitado de 01-01-1970 para 19-01-2038 em alguns sistemas (e.g. Windows).
5.1.0

Agora lança erros E_STRICT e E_NOTICE .

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

Exemplos

Exemplo #1 Exemplos da função 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));
?>

Para prevenir que um caractere reconhecido na string de formatação seja expandido, escape-o, precedendo-o com uma barra invertida. Se o caractere 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 as funções date() e mktime() juntas 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:

Isso 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 o horário de verão.

Alguns exemplos de formatação de date(). Note que você deve escapar qualquer outro caractere, pois qualquer um que possua um significado especial produzirá resultados indesejáveis, e outros caracteres podem assumir significado em futuras versões do PHP. Quando usar escape, certifique-se de usar aspas simples para evitar que caracteres como \n virem novas linhas.

Exemplo #4 Formatação com a função date()

<?php
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$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');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$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 17:16:18 MST 2001
$today date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today date("H:i:s");                         // 17:16:18
$today date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>

Para formatar datas em outros idiomas, você deve utilizar as funções setlocale() e strftime() em vez de date().

Notas

Nota:

Para gerar um timestamp de uma string da representação da data, pode-se utilizar as funções 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

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

Veja Também


Funções de Data/Hora
PHP Manual