Как мне использовать PHP, чтобы получить текущий год? - PullRequest
828 голосов
/ 15 сентября 2008

Я хочу разместить уведомление об авторских правах в нижнем колонтитуле веб-сайта, но я думаю, что год, который устарел, невероятно безвкусен. Как мне сделать обновление года автоматически с PHP 4 и PHP 5 ?

Ответы [ 24 ]

979 голосов
/ 15 сентября 2008

Вы можете использовать date или strftime . В этом случае я бы сказал, что это не имеет значения, поскольку год - это год, несмотря ни на что (разве есть локаль, которая форматирует год по-другому?)

Например:

<?php echo date("Y"); ?>

Кстати, при форматировании дат в PHP имеет значение, когда вы хотите отформатировать дату в другой локали, чем по умолчанию. Если это так, вы должны использовать setlocale и strftime. Согласно инструкции php на дату:

Чтобы форматировать даты на других языках, Вы должны использовать setlocale () и Функция strftime () вместо Дата ().

С этой точки зрения, я думаю, что было бы лучше использовать strftime как можно больше, если у вас даже есть возможность удаленной локализации вашего приложения. Если это не проблема, выберите тот, который вам больше нравится.

506 голосов
/ 15 сентября 2008
<?php echo date("Y"); ?>
201 голосов
/ 16 сентября 2008

Моя супер ленивая версия, показывающая строку об авторских правах, которая автоматически обновляется:

&copy; <?php 
$copyYear = 2008; 
$curYear = date('Y'); 
echo $copyYear . (($copyYear != $curYear) ? '-' . $curYear : '');
?> Me, Inc.

В этом (2008) году будет сказано:

& копия; 2008 Me, Inc.

В следующем году он скажет:

& копия; 2008-2009 Me, Inc.

и будьте всегда в курсе текущего года.


Или (PHP 5.3.0+) компактный способ сделать это с помощью анонимной функции, чтобы избежать утечки переменных и не повторять код / ​​константы:

&copy; 
<?php call_user_func(function($y){$c=date('Y');echo $y.(($y!=$c)?'-'.$c:'');}, 2008); ?> 
Me, Inc.
61 голосов
/ 02 января 2013

Поскольку PHP движется в более объектно-ориентированном направлении, я удивлен, что никто здесь не ссылался на встроенный класс DateTime:

$now = new DateTime();
$year = $now->format("Y");

или однострочник с доступом к члену класса при создании экземпляра (php> = 5.4):

$year = (new DateTime)->format("Y");
29 голосов
/ 15 сентября 2008

http://us2.php.net/date

echo date('Y');
27 голосов
/ 15 сентября 2008
strftime("%Y");

Я люблю strftime . Это отличная функция для захвата / рекомбинации кусков даты / времени.

Кроме того, он учитывает настройки локали, которые не выполняет функция даты.

14 голосов
/ 15 сентября 2008

Это дает вам местное время:

$year = date('Y'); // 2008

А этот UTC :

$year = gmdate('Y'); // 2008
12 голосов
/ 16 октября 2014

Для четырехзначного представления:

<?php echo date('Y'); ?>

2-значное представление:

<?php echo date('y'); ?>

Проверьте документацию php для получения дополнительной информации: https://secure.php.net/manual/en/function.date.php

11 голосов
/ 17 января 2014

Вот что я делаю:

<?php echo date("d-m-Y") ?>

ниже немного объяснения того, что он делает:

d = day
m = month
Y = year

Y даст вам четыре цифры (например, 1990) и y для двух цифр (например, 90)

10 голосов
/ 11 апреля 2014

echo date('Y') дает вам текущий год, и он будет обновляться автоматически, поскольку date() дает нам текущую дату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...