date_timezone_set
getdate
Funções de Data/Hora
PHP Manual

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

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

### Histórico

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 | Há 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(0, 0, 0, 7, 1, 2000));
/* 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_ATOM, 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 Exemplo da date() e mktime()

`<?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() 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

- getlastmod() - Obtém o tempo da última modificação na pagina
- gmdate() - Formata uma data/hora GMT/CUT
- mktime() - Obtém um timestamp Unix para uma data
- strftime() - Formata uma hora/data de acordo com as configurações locais
- time() - Retorna o timestamp Unix atual

date_timezone_set
getdate
Funções de Data/Hora
PHP Manual