Introdução: por que a pergunta "Como obter o ano atual em PHP?" é tão popular?
Parece simples, não é? Pegar e exibir o ano atual. Mas no Stack Overflow, essa pergunta acumulou centenas de milhares de visualizações. Por quê? Porque por trás da aparente simplicidade, escondem-se dezenas de nuances: desde diferenças entre o horário do servidor e o fuso horário do usuário até a formatação correta para diferentes localidades.
Neste artigo, vamos analisar como obter o ano atual em PHP de todas as formas possíveis, aprender a evitar erros típicos e entender qual método escolher para sua tarefa específica. Independentemente de você estar escrevendo um copyright no rodapé do site ou um sistema complexo de controle de tempo, este material será útil.
Vamos lá!
Método nº 1: A função clássica date()
A maneira mais popular e simples de obter o ano atual em PHP é usar a função date(). Ela retorna uma string formatada com a data e hora atuais do servidor.
<?php// Obtém o ano atual (4 dígitos)$year = date('Y');echo "Agora é $year"; // Exibirá: Agora é 2026?>O que está acontecendo aqui? O caractere Y é um formato que significa "ano no formato de 4 dígitos". Se você precisar do ano com os dois últimos dígitos (24, 25, 26), use y:
<?phpecho date('y'); // 26?>Por que date('Y') é bom?
- Simplicidade: uma linha de código e pronto.
- Flexibilidade: pode ser combinado com outros formatos:
date('Y-m-d')— data,date('Y-m-d H:i:s')— data com hora. - Velocidade: a função é muito rápida, não requer criação de objetos.
Quando ter cuidado?
A função date() usa o fuso horário definido nas configurações do PHP (diretiva date.timezone no php.ini). Se o servidor tiver um fuso horário incorreto, obter o ano atual em PHP pode dar um resultado errado na virada do ano.
Solução: sempre defina o fuso horário no início do script:
<?phpdate_default_timezone_set('America/Sao_Paulo');echo date('Y'); // Agora é 2026 com certeza?>Método nº 2: Abordagem orientada a objetos — classe DateTime
Se você escreve código PHP moderno (versão 5.2+), é melhor usar a classe DateTime. É uma ferramenta mais poderosa e flexível para trabalhar com datas.
<?php$now = new DateTime();$year = $now->format('Y');echo "Ano atual: $year";?>Vantagens do DateTime:
- Modelo orientado a objetos: fácil manipular datas (adicionar dias, meses, comparar).
- Gerenciamento claro de fuso horário: passe o fuso horário no construtor.
- Internacionalização: fácil localizar datas.
Exemplo com fuso horário:
<?php$timezone = new DateTimeZone('Europe/London');$now = new DateTime('now', $timezone);echo $now->format('Y'); // Ano pelo horário de Greenwich?>Método nº 3: Uso da função strftime() (obsoleta, mas ainda viva)
A função strftime() já foi o padrão para exibição localizada de datas. Desde o PHP 8.1, ela foi declarada obsoleta, mas você pode encontrá-la em projetos antigos.
<?phpsetlocale(LC_TIME, 'pt_BR.UTF-8');echo strftime('%Y'); // 2026?>Importante: não use strftime() em novos projetos. Em vez disso, utilize IntlDateFormatter para localização.
Método nº 4: Como obter o ano de uma data arbitrária?
Frequentemente, não é apenas obter o ano atual em PHP, mas extraí-lo de uma data já existente