Introdução: por que a pergunta sobre o "ano atual" é tão popular?
\n\nParece simples perguntar ao PHP: "Ei, que ano é agora?" — e obter a resposta. Mas não é bem assim! A pergunta "How do I use PHP to get the current year?" acumulou dezenas de milhares de visualizações no Stack Overflow. Por quê?
\n\nPrimeiro, é uma das primeiras tarefas que um iniciante enfrenta: exibir no rodapé do site "© 2024", criar uma lista dinâmica de anos em um formulário de cadastro ou simplesmente verificar a idade do usuário. Segundo, o PHP oferece várias abordagens diferentes, e cada uma tem suas nuances. Terceiro (e este é o mais traiçoeiro), iniciantes frequentemente confundem date('y') e date('Y') — e obtêm 24 em vez de 2024. Depois se perguntam por que o site "vive" no século passado.
Neste artigo, vamos explorar todas as maneiras populares de obter o ano atual em PHP, desde as mais óbvias até as mais avançadas. Você aprenderá como evitar erros comuns, qual método escolher para seu projeto e como trabalhar com o ano em diferentes fusos horários. Vamos lá!
\n\n1. A maneira mais simples: a função date()
\n\nO rei de todas as funções PHP para trabalhar com datas é date(). Ela aceita um formato e, opcionalmente, um timestamp. Se nenhum timestamp for fornecido, usa a hora atual do servidor.
Como obter o ano com 4 dígitos (2024, 2025…)
\n<?php\necho date('Y'); // Exibe: 2024\n?>\n\nO caractere Y (maiúsculo) representa o ano completo, com 4 dígitos. É o que você deve usar em 99% dos casos.
\n\nComo obter o ano com 2 dígitos (24, 25…)
\n<?php\necho date('y'); // Exibe: 24\n?>\n\nO caractere y (minúsculo) representa o ano com dois dígitos. Use-o apenas se estiver escrevendo um programa de brinquedo ou trabalhando com código legado (que provavelmente já está quebrado devido a problemas semelhantes ao Y2K).
\n\nExemplo prático: copyright no rodapé
\n<footer>\n <p>© 2010–<?php echo date('Y'); ?> Meu super-site</p>\n</footer>\n\nEsse código atualiza automaticamente o ano no rodapé — você não precisará corrigi-lo todo mês de janeiro. Legal, né?
\n\n2. Abordagem orientada a objetos: a classe DateTime
\n\nSe você está escrevendo PHP moderno (7.x, 8.x), é melhor usar a classe DateTime. Ela é mais flexível, fácil de manipular e mais legível.
Obtendo o ano com DateTime
\n<?php\n$now = new DateTime();\necho $now->format('Y'); // 2024\n?>\n\nO método format() funciona da mesma forma que date(), mas em um objeto. A vantagem é que você pode facilmente alterar a data, adicionar dias, meses e depois formatá-la novamente.
Exemplo avançado: ano a partir de uma data específica
\n<?php\n$date = new DateTime('2023-03-15');\necho $date->format('Y'); // 2023\n?>\n\nIsso é útil quando você trabalha com um banco de dados e armazena datas como strings.
\n\n3. O bom e velho strftime() (mas com ressalvas)
\n\nA função strftime() é outra maneira de obter o ano. Ela é boa porque leva em conta a localidade (idioma e configurações regionais). Por exemplo, em português brasileiro, ela pode exibir o nome do mês em português.
Exemplo com strftime
\n<?php\nsetlocale(LC_TIME, 'pt_BR.utf8');\necho strftime('%Y'); // 2024\n?>\n\nMas há uma ressalva importante: a partir do PHP 8.1, a função strftime() foi marcada como obsoleta (deprecated). Ela ainda pode ser usada, mas pode ser removida em versões futuras. Se estiver escrevendo código novo, é melhor usar DateTime.
4. A variável $_SERVER['REQUEST_TIME']
\n\nÀs vezes, você precisa obter o ano "em tempo real", sem criar objetos. Para isso, pode usar o array superglobal $_SERVER.
Blogs
Book Recommendations
Leia também
Testes de Integração PHP com Docker: Guia Completo
Otimização de desempenho JavaScript: guia para iniciantes
Rust para iniciantes em 2025: guia completo para começar
Monorepositório com Kotlin: organização de código e melhores práticas
Exibindo estruturas em Go: do iniciante ao profissional em 10 minutos