PHP 8.3.4 Released!

date

(PHP 4, PHP 5, PHP 7, PHP 8)

dateFormatar um timestamp Unix

Descrição

date(string $format, ?int $timestamp = null): string

Retorna uma string de acordo com a string de formato informada usando o inteiro timestamp (timestamp Unix) 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().

Aviso

Timestamps Unix não lidam com fusos horários. Use a classe DateTimeImmutable e seu método de formatação DateTimeInterface::format() para formatar informações de data/hora com um fuso horário anexado.

Parâmetros

format

Formato aceito pelo DateTimeInterface::format().

Nota: date() irá sempre gerar 000000 para os microssegundos já que ele usa um parâmetro int, enquanto que DateTime::format() suporta microssegundos se DateTime foi criado com microssegundos.

timestamp

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

Valor Retornado

Retorna uma string formatada de data.

Erros/Exceções

Toda chamada a uma função de data/hora gerará um E_WARNING se o fuso horário não for válido. Veja também date_default_timezone_set()

Registro de Alterações

Versão Descrição
8.0.0 timestamp agora pode ser nulo.

Exemplos

Exemplo #1 Exemplos da função date()

<?php
// Modifica o fuso horário a ser utilizado.
date_default_timezone_set('UTC');


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

// Exibe algo 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 algo como: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// Exibe algo como: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>

Para evitar que um caractere reconhecido na string de formatação seja expandido, prefixe-o com uma barra invertida. Se o caractere com a barra invertida já for uma sequência especial, você pode precisa também prefixar com 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 (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:

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, IntlDateFormatter::format() pode ser utilizada 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'].

Veja Também

add a note

User Contributed Notes 1 note

up
0
griddstone at outlook dot com
5 days ago
There is a fine distinction between g, G, h, and H. All of them are for the hour of the day, but in four different formats.

g = 12-hour format, no leading zeros
G = 24-hour format, no leading zeros
h = 12-hour format, with leading zeros
H = 24-hour format, with leading zeros

<?php
date
("g:i", mktime(0,0,0,3,13,2024)) // -> 12:00
date("G:i", mktime(8,0,0,3,13,2024)) // -> 8:00
date("h:i", mktime(8,0,0,3,13,2024)) // -> 08:00
date("H:i", mktime(0,0,0,3,13,2024)) // -> 00:00
?>

Essentially, capital letter is 24-hour format, lower case is 12-hour format. 'h' has leading zeros, 'g' does not.
To Top