Как получить текущий год в PHP: простые способы и примеры
Использование функции date() для получения текущего года
Функция date() — это самый простой и распространённый способ получить текущую дату или время в PHP. Для получения только года используется формат "Y" (четырёхзначный год) или "y" (двузначный год).
<?php
// Получаем текущий год (4 цифры, например 2025)
$currentYear = date("Y");
echo $currentYear; // Выведет: 2025
// Альтернативный вариант с двузначным годом
$shortYear = date("y");
echo $shortYear; // Выведет: 25
?>
Важный момент: функция date() использует часовой пояс сервера. Если вам нужно работать с определённым часовым поясом, установите его перед вызовом:
<?php
date_default_timezone_set('Europe/Moscow');
echo date("Y"); // Теперь год будет соответствовать московскому времени
?>
Использование объекта DateTime (рекомендуемый способ)
Начиная с PHP 5.2, предпочтительнее использовать класс DateTime, так как он предоставляет более гибкий и объектно-ориентированный интерфейс для работы с датами.
<?php
// Создаём объект DateTime для текущего момента
$now = new DateTime();
echo $now->format("Y"); // Выведет: 2025
// Можно указать часовой пояс при создании
$moscowTime = new DateTime('now', new DateTimeZone('Europe/Moscow'));
echo $moscowTime->format("Y"); // Год по Москве
?>
Использование в шаблонах (например, для копирайта)
Часто текущий год нужен для динамического отображения копирайта в подвале сайта. Вот правильный способ:
<footer>
<p>© 2010-<?php echo date("Y"); ?> Мой сайт. Все права защищены.</p>
</footer>
Или с использованием короткого тега (если он включён на сервере):
<footer>
<p>© 2010-<?= date("Y") ?> Мой сайт.</p>
</footer>
Почему появляются лишние символы?
Если вы видите лишние символы при выводе, это может быть связано с:
- Пробелами или переводом строки в коде до или после
<?php— проверьте, нет ли лишних пробелов вне тегов PHP. - Настройками кодировки — убедитесь, что файл сохранён в UTF-8 без BOM.
- Ошибками в других частях скрипта — например, случайный вывод до вызова
date().
Сравнение методов
- date() — простая функция, подходит для быстрых решений. Не требует создания объекта.
- DateTime — более мощный инструмент, поддерживает временные зоны, манипуляции с датами (добавление дней, месяцев) и форматирование. Рекомендуется для серьёзных проектов.
В вашем случае для вывода года в подвале сайта достаточно echo date("Y");. Если в будущем понадобится работать с диапазонами дат или сложными вычислениями — переходите на DateTime.
Альтернативный подход: использование функции strftime()
Функция strftime() может быть полезна, если вам нужно учитывать локаль (язык) сервера. Однако с PHP 8.1 она объявлена устаревшей, поэтому для новых проектов лучше использовать date() или DateTime.
<?php
// Устаревший способ, но всё ещё работает в PHP 7.x
setlocale(LC_TIME, 'ru_RU.UTF-8');
echo strftime("%Y"); // Выведет: 2025
?>
Использование константы для оптимизации
Если вы вызываете date("Y") много раз на одной странице, можно сохранить значение в переменную или определить константу:
<?php
define('CURRENT_YEAR', date("Y"));
echo CURRENT_YEAR; // Используйте везде, где нужен текущий год
?>
Этот подход особенно полезен, если год не меняется в течение выполнения скрипта (а он не меняется, если скрипт выполняется меньше секунды).
Для любителей функционального стиля
Можно создать простую функцию-обёртку для удобства:
<?php
function getCurrentYear() {
return (new DateTime())->format('Y');
}
echo getCurrentYear(); // 2025
?>
Какой бы способ вы ни выбрали, главное — помнить о настройках часового пояса и кодировки файла. Для большинства простых задач echo date("Y"); — идеальное решение.