Как мне использовать PHP, чтобы получить текущий год?

697

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

  • 576
    echo date("Y");
  • 2
    Я получил предупреждение, используя это. Добавлен date_default_timezone_set ('UTC'); чтобы избежать получения предупреждения. («UTC + 1» не работает ... не могу сказать вам ничего, кроме как начать с PHP). Вероятно, есть какой-то способ настроить PHP, чтобы избежать выдачи предупреждений (в некоторых конфигурационных файлах, таких как php.ini).
Показать ещё 9 комментариев
Теги:
date

22 ответа

790
Лучший ответ

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

Например:

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

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

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

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

  • 3
    @ErikvanBrakel просто не интересует текущий год в Таиланде - 2556. Не уверен, что языковой стандарт PHP учитывает это, но в идеальном мире это должно быть :)
  • 0
    Вы можете просто сказать: дата ("Y");
Показать ещё 4 комментария
464
<?php echo date("Y"); ?>
  • 29
    Кроме того, <?= date('Y') ?>
  • 32
    Короткие теги поддерживаются не всеми серверами, и это также так: programmers.stackexchange.com/questions/151661/…
Показать ещё 3 комментария
199

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

&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.
  • 14
    Более короткая (но менее читаемая) версия: &copy; <?php echo 2008 != date('Y') ? '2008 - ' . date('Y') : 2008; ?> Me, Inc.
  • 0
    Моя однострочная версия: <?php echo '&copy; 2008', ($year = gmdate("Y")) !== '2008'? ' - '.$year : '', ' Me, Inc.'; ?>
43

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

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

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

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

http://us2.php.net/date

echo date('Y');
  • 0
    это показывает текущую дату
20
strftime("%Y");

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

Плюс он уважает настройки локали, которые функция даты не делает.

12

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

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

И этот UTC:

$year = gmdate('Y'); // 2008
10

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

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

Двузначное представление:

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

За дополнительной информацией обратитесь к документации по php: https://secure.php.net/manual/en/function.date.php

9

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

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

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

d = day
m = month
Y = year

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

8

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

7
print date('Y');

Дополнительные сведения см. в документации по функциям даты(): https://secure.php.net/manual/en/function.date.php

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

Этот код должен делать

  • 0
    Старайтесь избегать коротких тегов формы, будь то <? или <? = потому что это не очень хорошая практика. Стоит отметить, что многие хорошие фреймворки, такие как Zend, не допускают краткую ссылку на открывающий тег PHP, поэтому, пожалуйста, ради меня, нажмите несколько клавиш, чтобы сохранить читабельность кода.
5

используйте функцию PHP, которая называется date().

Он принимает текущую дату, а затем вы предоставляете ему формат.

и формат будет только Y. Капитал Y будет четырехзначным годом.

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

Просто напишите:

date("Y") // A full numeric representation of a year, 4 digits
          // Examples: 1999 or 2003

Или:

date("y"); // A two digit representation of a year     Examples: 99 or 03

И "эхо" это значение...

4

Если ваш сервер поддерживает короткие теги или вы используете PHP 5.4, вы можете использовать:

<?=date("Y")?>
  • 5
    Пожалуйста, никогда, никогда, никогда не используйте шорт-теги снова. stackoverflow.com/questions/200640/...
3

Для до php 5.4 +

<?php
    $current= new \DateTime();
    $future = new \DateTime('+ 1 years');

    echo $current->format('Y'); 
    //For 4 digit ('Y') for 2 digit ('y')
?>

Или вы можете использовать его с одной строкой

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

Если вы хотите увеличить или уменьшить год другим методом; добавьте строку изменения, как показано ниже.

<?PHP 
  $now   = new DateTime;
  $now->modify('-1 years'); //or +1 or +5 years 
  echo $now->format('Y');
  //and here again For 4 digit ('Y') for 2 digit ('y')
?>
3

Кстати... существует несколько правильных способов отображения авторских прав на сайте. Некоторые люди склонны делать вещи избыточными, а именно: Copyright имеют одинаковое значение. Важными частями авторского права являются:

**Symbol, Year, Author/Owner and Rights statement.** 

Использование PHP + HTML:

<p id='copyright'>&copy; <?php echo date("Y"); ?> Company Name All Rights Reserved</p>

или

<p id='copyright'>&copy; <?php echo "2010-".date("Y"); ?> Company Name All Rights Reserved</p
3

Вы можете использовать простой класс даты PHP. Он предоставляет множество полезных методов и функций:

$date = new simpleDate();
echo $date->now()->getYear(); 
echo $date->now()->getMonth();
echo $date->set('2013-01-21')->getDayString();
echo $date->now()->compare('2013-01-21')->isBefore();
...

Вы можете проверить страницу учебников по библиотекам для получения дополнительных примеров

1

Мой способ показать авторское право, которое автоматически обновляется

<p class="text-muted credit">Copyright &copy;     <?php
            $copyYear = 2017; // Set your website start date
            $curYear = date('Y'); // Keeps the second year updated
            echo $copyYear . (($copyYear != $curYear) ? '-' . $curYear : '');
            ?> 
            </p>    

Он выведет результаты как

copyright @ 2017   //if $copyYear is 2017 
copyright @ 201x-2017    //if $copyYear is less than 2017
1

Получить полный год:

 <?php 
    echo $curr_year = date('Y'); // it will display full year ex. 2017
?>

Или используйте только две цифры года:

 <?php 
    echo $curr_year = date('y'); // it will display short 2 digit year ex. 17
?>
1
<?php date_default_timezone_set("Asia/Kolkata");?><?=date("Y");?>

Вы можете использовать это в разделах нижнего колонтитула, чтобы получить динамический год авторских прав

0
<?php
$time_now=mktime(date('h')+5,date('i')+30,date('s'));
$dateTime = date('d_m_Y   h:i:s A',$time_now);

echo $dateTime;
?>
  • 1
    Это не то, что они просят, ни объясненный ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню