Cómo obtener el año actual en PHP: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: ¿por qué la pregunta «¿Cómo obtener el año actual en PHP?» es tan popular?



Podría parecer que no hay nada más simple: tomar y mostrar el año actual. Pero en Stack Overflow esta pregunta ha acumulado cientos de miles de visitas. ¿Por qué? Porque detrás de la aparente simplicidad se esconden decenas de matices: desde las diferencias entre la hora del servidor y la zona horaria del usuario hasta el formato correcto para diferentes configuraciones regionales.



En este artículo analizaremos cómo obtener el año actual en PHP de todas las formas posibles, aprenderemos a evitar errores típicos y entenderemos qué método elegir para su tarea específica. Independientemente de si está escribiendo un copyright en el pie de página de un sitio web o un sistema complejo de registro de tiempo, este material le será útil.



¡Comencemos!



Método n.º 1: La función clásica date()



La forma más popular y sencilla de obtener el año actual en PHP es usar la función date(). Esta devuelve una cadena formateada con la fecha y hora actuales del servidor.



<?php// Obtenemos el año actual (4 dígitos)$year = date('Y');echo "Ahora es el año $year"; // Mostrará: Ahora es el año 2026?>


¿Qué sucede aquí? El símbolo Y es un formato que significa «año en formato de 4 dígitos». Si necesita el año en forma de los dos últimos dígitos (24, 25, 26), use y:



<?phpecho date('y'); // 26?>


¿Por qué date('Y') es bueno?

  • Simplicidad: una línea de código y listo.
  • Flexibilidad: se puede combinar con otros formatos: date('Y-m-d') — fecha, date('Y-m-d H:i:s') — fecha con hora.
  • Velocidad: la función funciona muy rápido, no requiere crear objetos.


¿Cuándo tener cuidado?

La función date() usa la zona horaria establecida en la configuración de PHP (directiva date.timezone en php.ini). Si el servidor tiene una zona horaria incorrecta, obtener el año actual en PHP puede dar un resultado incorrecto en la víspera de Año Nuevo.



Solución: establezca siempre la zona horaria al inicio del script:



<?phpdate_default_timezone_set('Europe/Madrid');echo date('Y'); // Ahora sí es 2026?>


Método n.º 2: Enfoque orientado a objetos — la clase DateTime



Si escribe código moderno en PHP (versión 5.2+), es mejor usar la clase DateTime. Es una herramienta más potente y flexible para trabajar con fechas.



<?php$now = new DateTime();$year = $now->format('Y');echo "Año actual: $year";?>


Ventajas de DateTime:

  • Modelo de objetos: se pueden manipular fácilmente las fechas (agregar días, meses, comparar).
  • Gestión clara de la zona horaria: pase la zona horaria al constructor.
  • Internacionalización: fácil de localizar fechas.


Ejemplo con zona horaria:



<?php$timezone = new DateTimeZone('Europe/London');$now = new DateTime('now', $timezone);echo $now->format('Y'); // Año según Greenwich?>


Método n.º 3: Uso de la función strftime() (obsoleto, pero aún vigente)



La función strftime() fue en su momento el estándar para la salida localizada de fechas. Desde PHP 8.1 está declarada como obsoleta, pero en proyectos antiguos puede encontrarla.



<?phpsetlocale(LC_TIME, 'es_ES.UTF-8');echo strftime('%Y'); // 2026?>


Importante: no use strftime() en proyectos nuevos. En su lugar, use IntlDateFormatter para la localización.



Método n.º 4: ¿Cómo obtener el año de una fecha arbitraria?



A menudo no solo se necesita obtener el año actual en PHP, sino extraerlo de una fecha ya existente

Blogs

Book Recommendations