Nesse artigo vamos aprender uma forma bem simples de trabalhar com data no PHP.
Utilizaremos 3 funções básicas já criadas na própria linguagem.
- date();
- strftime();
- strtotime();
1º Passo:
Formatamos a data no padrão 0000-00-00 00:00:00. Em nosso exemplo vamos pegar a data atual utilizando a função date();
2º Passo:
Definimos as informações locais, com isso conseguimos pegar o nome dos meses e dias da semana na língua desejada.
3º Passo:
Com uma combinação da função strftime com a strtotime formatamos a data da forma com que precisamos.
$data = date(‘Y-m-d H:i:s’);
setlocale(LC_ALL, "pt_BR", "ptb");
echo strftime("%A %d de %B de %Y", strtotime($data));
?>
Imprime a data atual no formato: domingo 03 de maio de 2009
Parâmetros para função date:
Dia
d - Dia do mês, 2 digitos com preenchimento de zero
D – Uma representação textual de um dia, três letras
j – Dia do mês sem preenchimento de zero
l (‘L’ minúsculo) – A representação textual completa do dia da semana
N – Representação numérica ISO-8601 do dia da semana (adicionado no PHP 5.1.0)
S – Sufixo ordinal inglês para o dia do mês, 2 caracteres
w – Representação numérica do dia da semana
z – O dia do ano (começando do 0)
Semana
W – Número do ano da semana ISO-8601, semanas começam na Segunda (adicionado no PHP 4.1.0)
Mês
F – Um representação completa de um mês, como January ou March
m – Representação numérica de um mês, com leading zeros
M – Uma representação textual curta de um mês, três letras
n – Representação numérica de um mês, sem leading zeros
t – Número de dias de um dado mês
Ano
L – Se está em um ano bissexto
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)
Y – Uma representação de ano completa, 4 dígitos
y – Uma representação do ano com dois dígitos
Tempo
a – Antes/Depois de meio-dia em minúsculo
A – Antes/Depois de meio-dia em maiúsculo
B – Swatch Internet time
g – Formato 12-horas de uma hora sem preenchimento de zero
G - Formato 24-horas de uma hora sem preenchimento de zero
h - Formato 12-horas de uma hora com zero preenchendo à esquerda
H – Formato 24-horas de uma hora com zero preenchendo à esquerda
i – Minutos com zero preenchendo à esquerda
s – Segundos, com zero preenchendo à esquerda
u – Milisegundos (adicionado no PHP 5.2.2)
Timezone
e - Identificador de Timezone (adicionado no PHP 5.1.0)
I (capital i) Se a data está ou não no horário de verão
O – Diferença para Greenwich time (GMT) em horas
P – Diferença para Greenwich time (GMT) com dois pontos entre horas e minutos (adicionado no PHP 5.1.3)
T – Abreviação de Timezone
Z - Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive.
Parâmetros para função strftime:
%a – Dia da semana abreviado de acordo com a localidade
%A – Nome da semana completo de acordo com a localidade
%b – Nome do mês abreviado de acordo com a localidade
%B – Nome do mês completo de acordo com a localidade
%c – Representação da data e hora preferida pela a localidade
%C – Número do século (o ano dividido por 100 e truncado para um inteiro, de 00 até 99)
%d – Dia do mês como um número decimal (de 01 até 31)
%D – Mesmo que %m/%d/%y
%e - Dia do mês como um número decimal, um simples dígito é precedido por espaço (de ‘ 1′ até ‘31′)
%g – Como %G, mas sem o século.
%G – O 4-dígito do ano correspodendo as ISO week number (see %V). Este tem o mesmo formato e valor que %Y, exceto que se o ISO week number pertence ao prévio ou próximo ano, aquele ano é usado ao invés deste.
%h – Mesmo que %b
%H – Hora como um número decimal usando um relógio de 24-horas (de 00 até 23)
%I - Hora como um número decimal usando um relógio de 12-hoas (de 01 até 12)
%j – Dia do ano como número decimal (de 001 até 366)
%m – Mês como número decimal (de 01 até 12)
%M – Minuto como número decimal
%n – Caracter novalinha
%p - Um dos dois `am’ ou `pm’ de acordo com o valor da hora dada, ou as strings correspondentes para a localidade
%r - Hora em a.m. e p.m. notação
%R – Hora em notação de 24 horas
%S – Segundo como um número decimal
%t - Caracter tab
%T – Hora corrente, igual a %H:%M:%S
%u – Dia da semana como número decimal [1,7], com 1 representando Segunda-feira
%U – Dia da semana do ano corrente como número decimal, começando com o primeiro domingo como o primeiro dia da primeira semana
%V - O número da semana corrente ISO 8601:1988 do ano corrente como um número decimal, de 01 até 53, onde semana 1 é a primeira semana que tem pelo menos 4 dias no ano corrente, e com segunda-feira como o primeiro dia da semana. (Use %G ou %g para o componente anual que corresponde ao dia da semana para o para o timestamp especificado.)
%W – Dia da semana do ano corrente como número decimal, começando com o a segunda-feira como o primeiro dia da primera semana
%w – Dia da semana como número decimal, domingo sendo 0
%x – Representação preferida para a data para a localidade corrente sem a hora
%X - Representação preferida para a hora para a localidade corrente sem a data
%y - Ano como número decimal sem o século (de 00 até 99)
%Y - Ano como número decimal incluindo o século
%Z ou %z – Time zone, nome ou abreviação (dependendo do sistema operacional)
%% – A literal `%’ character
*Tamanho máximo deste parâmetro é 1023 caracteres.

05 de maio de 2009 às 10:08
Como faço para contar dentro de um determinado mês (Ex: Abril/2009), quantos domingos ele mês?
07 de agosto de 2009 às 22:05
vlw salvo maneiro !!
05 de março de 2012 às 22:16
fui atropelado por uma moto como faço pra colocar na televisao