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

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

Как мне сделать автоматическое обновление года с помощью PHP 4 или PHP 5?

echo date("Y");

doub1ejack 03.07.2012 23:30

Я получил предупреждение, используя это. Добавлен date_default_timezone_set ('UTC'); чтобы избежать предупреждения. («UTC + 1» не работает ... ничего не могу сказать, если только начать с PHP). Вероятно, есть способ настроить PHP, чтобы избежать выдачи предупреждений (в каком-то конфигурационном файле, таком как php.ini).

justin 26.01.2014 04:39

@justin Это означает, что вы не установили часовой пояс по умолчанию, и PHP это не нравится. Вы можете установить часовой пояс по умолчанию в файле php.ini, используя что-то вроде date.timezone = "America/Los_Angeles", или вы можете установить его в начале вашего кода, используя что-то вроде date_default_timezone_set( "America/Los_Angeles" ).

Joshua Pinter 07.02.2014 21:44

- восклицает Джош. Я выбрал второй подход, потому что это решение, с которым я столкнулся первым. Хорошо знать, что установить в php.ini, чтобы это действовало во всех скриптах.

justin 08.02.2014 15:01

ПРИМЕЧАНИЕ. Год в уведомлении об авторских правах на самом деле не имеет большого юридического значения, но обычно добавляется, чтобы помочь людям, которые хотят знать, действует ли по-прежнему авторское право. Таким образом, предполагается, что это год публикации работы. Просто использовать текущий год действительно не имеет никакого смысла ... Однако я видел это бесчисленное количество раз.

Stijn de Witt 08.03.2014 21:43

Это лучший способ, и я думаю, что фреймворки, такие как drupal и wordpress, должны добавить этот подход.

qasimzee 03.12.2014 10:34

@StijndeWitt отлично справился. Для справки, год действия авторских прав - это дата его публикации, и на самом деле он не имеет реальной ценности. Тем не менее, я случайно столкнулся с этим, потому что делал то же самое. B-)

Cyprus106 06.03.2015 01:26

@Stijn de Witt Хотя технически это верно, уведомление об авторских правах полная остановка не имеет реальной цели, авторское право является автоматическим, вам не нужно объявлять об этом. А учитывая, что у большинства веб-сайтов есть динамическая часть, то «год публикации» будет регулярно меняться (по крайней мере, если мы включаем исправления), поэтому наличие года в нижнем колонтитуле, отражающего текущий год, совершенно разумно, так как это хороший показатель того, что контент актуален. Неформально это почти все, для чего он используется, чтобы сказать: «Этот веб-сайт все еще актуален».

Nathan Hornby 02.06.2015 15:29

@NathanHornby Я знаю, что это автоматически. Таким образом, уведомление не имеет реальной юридической силы и носит информативный характер. Следовательно, всегда указывать текущий год - это плохо, так как это дезинформативный, это абсолютно ничего вам не говорит. Кроме того, авторское право не распространяется автоматически на весь контент на веб-сайте. Вместо этого он применяется к каждой отдельной публикации с момента ее публикации. Моя точка зрения: укажите дату публикации или вообще не указывайте ее. Не пишите скрипт на текущую дату.

Stijn de Witt 02.06.2015 17:44

Я лично утверждаю, что это стало веб-конвенцией, поэтому, хотя вы технически правы, люди этого не ожидают. Факт остается фактом: хотя надпись «Авторское право 2007, все права защищены» в нижнем колонтитуле страницы, содержащей статью, написанную в 2007 году, является технически правильным, посетители сайта могут предположить, что сайт был заброшен. Даже большие корпорации с командами юристов по-прежнему штампуют на своих веб-страницах текущий год, даже если это «2007–2015 годы».

Nathan Hornby 17.06.2015 12:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
998
10
1 199 355
29
Перейти к ответу Данный вопрос помечен как решенный

Ответы 29

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

короткие теги поддерживаются не всеми серверами, а также есть это: programmers.stackexchange.com/questions/151661/…

Dirk Hartzer Waldeck 06.02.2013 16:44

В PHP 5.4 вы можете свободно использовать короткие эхо-теги, как показано выше. Они намного приятнее во взглядах, имхо.

Jimbo 22.07.2013 12:50

@ShaneReustle, вы пропустили точку с запятой в конце;) Я знаю, что в данном случае они не важны, но это хорошая практика для новичков :)

Dimitar 26.04.2018 11:07

strftime("%Y");

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

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

http://us2.php.net/date

echo date('Y');

print date('Y');

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

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

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

А этот универсальное глобальное время:

$year = gmdate('Y'); // 2008
Ответ принят как подходящий

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

Например:

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

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

To format dates in other languages, you should use the setlocale() and strftime() functions instead of date().

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

@ErikvanBrakel просто из интереса, текущий год в Таиланде - 2556. Не уверен, учитывает ли это локаль PHP, но в идеальном мире это должно быть :)

Dirk Hartzer Waldeck 06.02.2013 16:41

Вы можете просто сказать: date ("Y");

user352353 13.12.2013 02:58

Китайские и японские годы ftw! 2016 年 / 二千 十六 年

Panzercrisis 06.04.2016 17:39

Если бы я мог сделать это на Youtube. "Например, если вы смотрите это в <? Php echo date (" Y ");?>"

Luka 02.01.2017 22:42

Да, существует МНОГО разных способов отформатировать год, например Тайские годы - буддийская эра (+543 по западному методу счета)

ZioBit 22.05.2019 12:41

также вы можете использовать now () -> year ... это почти то же самое

Ahmed Mansour 06.01.2021 19:22

Моя супер-ленивая версия отображения строки авторских прав, которая автоматически обновляется:

&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.

Более короткая (но менее читаемая) версия: &copy; <?php echo 2008 != date('Y') ? '2008 - ' . date('Y') : 2008; ?> Me, Inc.

hitautodestruct 02.03.2014 18:06

Моя однострочная версия: <?php echo '&copy; 2008', ($year = gmdate("Y")) !== '2008'? ' - '.$year : '', ' Me, Inc.'; ?>

ale5000 03.07.2017 17:42

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

<?=date("Y")?>

Пожалуйста, никогда, никогда больше не используйте короткие теги. stackoverflow.com/questions/200640/…

Jelmer 25.12.2012 14:25

php v5.4.0 - тег <? = всегда доступен независимо от ini-настройки short_open_tag, поэтому теперь вы можете использовать этот синтаксис.

nektobit 13.04.2019 11:23

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

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

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

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

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

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

ниже приведено небольшое объяснение того, что он делает:

d = day
m = month
Y = year

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

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

<?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;
?>

Это не то, о чем они просят, и не это объясненный ответ.

Elliot A. 19.05.2016 15:37

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

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

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

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

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

Просто пиши:

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

И "повторить" это значение ...

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

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

Using 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

Для 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')
?>

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

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

и формат будет просто Y. Заглавная буква Y будет четырехзначным годом.

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

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

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

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

Wael Assaf 11.07.2017 22:25

Похоже, это просто повторение этот существующий ответ.

Pang 12.08.2020 04:07

<?php date_default_timezone_set("Asia/Kolkata");?><?=date("Y");?>

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

Получите полный год использования:

 <?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
?>

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

<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 @ 2017-201x    //if $copyYear is not equal to Current Year.

используйте функцию PHP date().

и формат будет просто Y. Заглавная буква Y будет четырехзначным годом.

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

лучший шорткод для этого раздела:

<?= date("Y"); ?>

Я собирался написать то же самое: D

Lukas 18.03.2019 16:38

Если вы используете Расширение Carbon PHP API для DateTime, вы можете легко добиться этого:

<?php echo Carbon::now()->year; ?>

похоже на Laravel .... однако метода даты php вполне достаточно

Toni Tegar Sahidi 23.10.2020 14:03

$year = date("Y", strtotime($yourDateVar));

в моем случае уведомление об авторских правах в нижнем колонтитуле веб-сайта Wordpress нуждалось в обновлении.

мысль простая, но требовала шага или больше, чем предполагалось.

  1. Откройте footer.php в папке вашей темы.

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

    <div id = "copyright">
        <?php the_field('copyright_disclaimer', 'options'); ?>
    </div>
    
  3. Теперь мы знаем, что год написан где-то в админке WordPress, поэтому найдите его, чтобы удалить текст года. В WP-Admin перейдите к Options в левом главном меню администратора:

    Затем на следующей странице перейдите на вкладку Disclaimers:

    и вверху вы найдете год авторского права:

    УДАЛИТЬ символ © + год + пустое место после года, затем сохраните страницу с помощью кнопки Update в правом верхнем углу страницы.

  4. Теперь, когда текстовая версия года удаляется, мы можем добавить наш год, который автоматически обновляется с помощью PHP. Вернитесь к фрагменту кода в ШАГ 2, найденному в footer.php, и обновите его до следующего:

    <div id = "copyright">
        &copy;<?php echo date("Y"); ?> <?php the_field('copyright_disclaimer', 'options'); ?>
    </div>
    
  5. Выполнено! Просто нужно протестировать, чтобы убедиться, что изменения вступили в силу, как ожидалось.

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

Выведите текущий месяц через M, день через D и год через Y.

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

Чтобы получить текущий год с помощью функции даты PHP, вы можете передать символ формата «Y» следующим образом:

// Получение текущего года с помощью // Функция даты PHP.

$year = date("Y");
echo $year;

// Получение текущего года с помощью // Функция даты PHP.

$year = date("Y");
echo $year;

В приведенном выше примере будет распечатано полное 4-значное представление текущего года.

Если вы хотите получить только двухзначный формат, вы можете использовать символ формата «y» в нижнем регистре:

$ год = дата ("у"); echo $ год; 1 2 $ год = дата ("у"); echo $ год; Приведенный выше фрагмент распечатает 20 вместо 2020 или 19 вместо 2019 и т. д.

Для получения дополнительной цены во втором параметре функции даты strtotime возвращает метку времени, переданную параметром

echo date('Y', strtotime("now"));

echo strftime("%Y", strtotime("now"));

С классом datetime

echo (new DateTime)->format('Y');

Другие вопросы по теме