A função date() no PHP

// Fevereiro 22nd, 2009 // php, programação, web design

Resolvi estudar a função date() e expor alguns casos práticos interessantes.

Abaixo uma tabela simples (tabela completa) com a nomenclatura para cada formato de data. a combinação dessas nomenclaturas irá formar tipos de data e hora diferentes. Ai é que mora o segredo.

Formato Descrição
d Dia do mês com 2 dígitos
D Representação textual do dia
m Representação numérica do mês
M Representação textual do mês
y Representação do ano com 2 dígitos
Y Representação do ano com 4 dígitos
l (’L’ minúsculo) Descrição do dia da semana
h Formato em 12 horas
H Formato em 24 horas
i Minutos
s Segundos
F Uma representação textual de um mês.
g Formato de hora em: 1 a 12 horas.
G Formato de hora em: 0 a 23 horas.

Exemplo:

1
2
3
4
5
6
7
8
9
<?php
    $today1 = date("F j, Y, g:i a");
    $today2 = date("m.d.y");
    $today3 = date("j, n, Y");
    $today4 = date("Ymd");
    $today5 = date('\i\t \i\s \t\h\e jS \d\a\y.');
    $today6 = date('H:m:s \m \i\s\ \m\o\n\t\h');
    $today7 = date("H:i:s");
?>

Dando echo em cada variável teriamos:

  1. March 10, 2001, 5:16 pm
  2. 10, 03.10.01
  3. 10, 10, 3, 2001
  4. 20010310
  5. It is the 10th day.
  6. 17:03:17 m is month
  7. 17:16:17

É, muito bom.. mas o inglês não interessa…

Dias da semana: L ou N , o primeiro é em ingles (sunday, saturday, etc) o segundo é valor numérico de 1 a 7. No caso dos meses é a mesma coisa.

Tratar isso é simples.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
/*vou fazer apenas com o mês*/

$mes = date("n");

//montamos uma condição com switch para traduzir o mes

switch ($mes)
{
    case 01: $mes_port= "janeiro"; break;
    case 02: $mes_port= "fevereiro"; break;
    case 03: $mes_port= "março"; break;
    case 04: $mes_port= "abril"; break;
    case 05: $mes_port= "maio"; break;
    case 06: $mes_port= "junho"; break;
    case 07: $mes_port= "julho"; break;
    case 08: $mes_port= "agosto"; break;
    case 09: $mes_port= "setembro"; break;
    case 10: $mes_port= "outubro"; break;
    case 11: $mes_port= "novembro"; break;
    case 12: $mes_port= "dezembro"; break;
}

echo $mes."|".$mes_port;

?>

Simples e muito útil.

Leave a Reply