it-swarm-pt.tech

Como eu uso PHP para obter o ano em curso?

Eu quero colocar um aviso de direitos autorais no rodapé de um site, mas eu acho que é incrivelmente brega para o ano estar desatualizado. Como eu faria o ano atualizar automaticamente com PHP 4 e PHP 5 ?

826
JD Graffam

Você pode usar date ou strftime . Neste caso, eu diria que não importa como um ano é um ano, não importa o que (a menos que haja uma localidade que formata o ano de forma diferente?)

Por exemplo:

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

Em uma nota lateral, quando formatar datas em PHP é importante quando você deseja formatar sua data em um local diferente do seu padrão. Se assim for, você tem que usar setlocale e strftime. De acordo com o manual do php na data:

Para formatar datas em outros idiomas, você deve usar as funções setlocale () e strftime () em vez de date ().

Deste ponto de vista, eu acho que seria melhor usar o strftime tanto quanto possível, se você tiver uma possibilidade remota de localizar seu aplicativo. Se isso não for um problema, escolha o que você mais gosta.

970
Erik van Brakel
<?php echo date("Y"); ?>
506
Daniel Papasian

Minha versão super preguiçosa de mostrar uma linha de direitos autorais, que fica atualizada automaticamente:

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

Este ano (2008), dirá:

© 2008 Me, Inc.

No próximo ano, dirá:

© 2008-2009 Me, Inc.

e para sempre ficar atualizado com o ano atual.


Ou (PHP 5.3.0+) uma maneira compacta de fazer isso usando uma função anônima para que você não tenha variáveis ​​vazando e não repita códigos/constantes:

&copy; 
<?php call_user_func(function($y){$c=date('Y');echo $y.(($y!=$c)?'-'.$c:'');}, 2008); ?> 
Me, Inc.
201
gregmac

Com o PHP rumo a uma direção mais orientada a objeto, estou surpreso que ninguém aqui tenha referenciado a classe DateTime embutida:

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

ou one-liner com acesso de membro de classe na instanciação (php> = 5.4):

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

http://us2.php.net/date

echo date('Y');
29
chrisb
strftime("%Y");

Eu amo strftime . É uma ótima função para pegar/recombinar partes de datas/horas.

Além disso, respeita as configurações de localidade que a função de data não faz.

27
Mark Biek

Este dá-lhe a hora local:

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

E esse aquiUTC:

$year = gmdate('Y'); // 2008
14
Alexey Lebedev

Para representação de 4 dígitos:

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

Representação de 2 dígitos:

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

Verifique a documentação do php para mais informações: https://secure.php.net/manual/en/function.date.php

12
joan16v

Aqui está o que eu faço:

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

abaixo é um pouco de explicação do que faz:

d = day
m = month
Y = year

Y dará a você quatro dígitos (por exemplo, 1990) e y para dois dígitos (por exemplo, 90)

11
Abdul Rahman A Samad

echo date('Y') dá-lhe o ano atual, e isso será atualizado automaticamente desde date() nos dar a data atual.

10
kkarayat
print date('Y');

Para mais informações, verifique a documentação da função date (): https://secure.php.net/manual/en/function.date.php

9
darwin

Se o seu servidor suporta Short Tags, ou você usa PHP 5.4, você pode usar:

<?=date("Y")?>
7
PanicGrip

use uma função PHP que é chamada apenas de date().

Leva a data atual e, em seguida, você fornece um formato para ela

e o formato será Y. O capital Y será um ano de quatro dígitos.

<?php echo date("Y"); ?>
7
Wael Assaf
<?php echo date("Y"); ?>

Este código deve fazer

7
Abdelkader Soudani

Apenas escreva:

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

Ou:

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

E 'ecoar' esse valor ...

7
saadk

Você pode usar a classe simples PHP date. Ele fornece muitos métodos e funções úteis:

$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();
...

Você pode verificar a página de tutoriais da biblioteca para mais exemplos

5
isa

Para até php 5.4+

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

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

Ou você pode usá-lo com uma linha

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

Se você quer aumentar ou diminuir o ano outro método; adicione a linha de modificação como abaixo.

<?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')
?>
5
Ivan Barayev

BTW ... há algumas maneiras adequadas como exibir os direitos autorais do site. Algumas pessoas têm tendência a tornar as coisas redundantes, ou seja, o Copyright © tem o mesmo significado. As partes importantes dos direitos autorais são:

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

Usando PHP + HTML:

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

ou

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

Minha maneira de mostrar os direitos autorais, que continua atualizando automaticamente

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

Ele produzirá os resultados como

copyright @ 2017   //if $copyYear is 2017 
copyright @ 2017-201x    //if $copyYear is not equal to Current Year.
2
Sushank Pokharel

use uma função PHP date().

e o formato será Y. O capital Y será um ano de quatro dígitos.

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

Obtenha o ano completo usado:

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

Ou obtenha apenas dois dígitos do ano usados ​​assim:

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

Você pode usar isso nas seções de rodapé para obter um ano de copyright dinâmico

2
imtaher

melhor shortcode para esta seção:

<?= date("Y"); ?>
1
Omid Ahmadyani