Introduction : pourquoi la question sur « l'année en cours » est-elle si populaire ?
\n\nOn pourrait penser que demander à PHP : « Hé, quelle année sommes-nous ? » — et obtenir une réponse — est un jeu d'enfant. Mais détrompez-vous ! La question « How do I use PHP to get the current year? » cumule des dizaines de milliers de vues sur Stack Overflow. Pourquoi ?
\n\nPremièrement, c'est l'un des premiers défis d'un débutant : afficher « © 2024 » dans le pied de page, créer une liste d'années dynamique dans un formulaire d'inscription, ou simplement vérifier l'âge d'un utilisateur. Deuxièmement, PHP propose plusieurs approches différentes, chacune avec ses subtilités. Troisièmement (et c'est le plus sournois), les novices confondent souvent date('y') et date('Y') — et obtiennent 24 au lieu de 2024. Ensuite, ils s'étonnent que leur site « vive » au siècle dernier.
Dans cet article, nous allons passer en revue toutes les méthodes populaires pour obtenir l'année en cours en PHP, des plus évidentes aux plus avancées. Vous apprendrez à éviter les erreurs typiques, à choisir la meilleure approche pour votre projet et à gérer l'année dans différents fuseaux horaires. C'est parti !
\n\n1. La méthode la plus simple : la fonction date()
\n\nLa reine des fonctions PHP pour manipuler les dates est date(). Elle accepte un format et, optionnellement, un timestamp. Si aucun timestamp n'est fourni, l'heure actuelle du serveur est utilisée.
Comment obtenir l'année sur 4 chiffres (2024, 2025…)
\n<?php\necho date('Y'); // Affiche : 2024\n?>\n\nLe symbole Y (majuscule) représente l'année complète sur 4 chiffres. C'est celui qu'il faut utiliser dans 99% des cas.
\n\nComment obtenir l'année sur 2 chiffres (24, 25…)
\n<?php\necho date('y'); // Affiche : 24\n?>\n\nLe symbole y (minuscule) donne l'année sur deux chiffres. Utilisez-le uniquement pour un programme jouet ou si vous travaillez avec du code legacy (qui est probablement déjà cassé à cause de problèmes type Y2K).
\n\nExemple concret : copyright dans le pied de page
\n<footer>\n <p>© 2010–<?php echo date('Y'); ?> Mon super site</p>\n</footer>\n\nCe code mettra automatiquement à jour l'année dans le pied de page — plus besoin de le modifier chaque janvier. Pas mal, non ?
\n\n2. L'approche orientée objet : la classe DateTime
\n\nSi vous utilisez du PHP moderne (7.x, 8.x), privilégiez la classe DateTime. Elle est plus flexible, plus facile à manipuler et plus lisible.
Obtenir l'année avec DateTime
\n<?php\n$now = new DateTime();\necho $now->format('Y'); // 2024\n?>\n\nLa méthode format() fonctionne comme date(), mais sur un objet. L'avantage : vous pouvez facilement modifier la date, ajouter des jours, des mois, puis la reformater.
Exemple avancé : année à partir d'une date spécifique
\n<?php\n$date = new DateTime('2023-03-15');\necho $date->format('Y'); // 2023\n?>\n\nC'est utile lorsque vous travaillez avec une base de données et stockez les dates sous forme de chaînes.
\n\n3. Le bon vieux strftime() (avec une réserve)
\n\nLa fonction strftime() est une autre façon d'obtenir l'année. Elle est pratique car elle prend en compte la locale (langue et paramètres régionaux). Par exemple, avec une locale française, elle peut afficher le nom du mois en français.
Exemple avec strftime
\n<?php\nsetlocale(LC_TIME, 'fr_FR.utf8');\necho strftime('%Y'); // 2024\n?>\n\nMais attention : depuis PHP 8.1, la fonction strftime() est marquée comme obsolète (deprecated). Elle fonctionne encore, mais pourrait être supprimée dans les futures versions. Si vous écrivez du nouveau code, utilisez plutôt DateTime.
4. La variable $_SERVER['REQUEST_TIME']
\n\nParfois, vous avez besoin d'obtenir l'année « à la volée », sans créer d'objets. Pour cela, utilisez le tableau superglobal $_SERVER.
Blogs
Book Recommendations
Lire aussi
Top erreurs des développeurs Go débutants : de A à Z
Junior Python développeur : compétences clés à maîtriser
Objet compagnon en Kotlin : remplacement de Java static et performances
Kotlin pour l'apprentissage automatique : possibilités et limites
Comment forcer une application .NET à toujours s'exécuter en tant qu'administrateur ? Guide complet