(PHP 4, PHP 5)
date — Formata a data e a hora local
$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().
format
A string de formato da data a ser mostrada. Veja as opções de formatação abaixo.
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().
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.
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()
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 |
5.1.1 |
Há constantes útils
do padrão de formato de data/hora que podem ser usados para especificar o
parâmetro format .
|
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().
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).
Timestamp do início da requisição está disponível na $_SERVER['REQUEST_TIME'] desde o PHP 5.1.