Comment utiliser PHP pour obtenir l'année en cours?

937

Je veux mettre un avis de droit d'auteur dans le pied de page d'un site Web, mais je pense que c'est incroyablement collant pour que l'année soit obsolète. Comment puis-je faire la mise à jour de l'année automatiquement avec PHP 4 et PHP 5 ?

JD Graffam
la source
631
echo date("Y");
doub1ejack
2
J'ai reçu un avertissement en utilisant cela. Date_default_timezone_set ('UTC') ajoutée; pour éviter de recevoir l'avertissement. ('UTC + 1' ne fonctionne pas ... ne peut pas vous en dire autant que de commencer avec PHP). Il existe probablement un moyen de configurer PHP pour éviter de lancer les avertissements (dans certains fichiers de configuration comme php.ini).
just
4
@justin Cela signifie que vous n'avez pas défini le fuseau horaire par défaut et que PHP n'aime pas cela. Vous pouvez soit définir le fuseau horaire par défaut dans le php.inifichier avec quelque chose comme date.timezone = "America/Los_Angeles"ou vous pouvez le définir au début de votre code avec quelque chose comme date_default_timezone_set( "America/Los_Angeles" ).
Joshua Pinter
7
REMARQUE: l'année dans un avis de droit d'auteur n'a pas vraiment beaucoup de valeur juridique, mais est généralement ajoutée pour aider les personnes qui veulent savoir si le droit d'auteur s'applique toujours. En tant que tel, il est censé être l'année de publication de l'ouvrage. Utiliser l'année en cours n'a vraiment aucun sens ... Cependant, je l'ai vu faire d'innombrables fois.
Stijn de Witt
7
Je dirais personnellement que c'est devenu une convention Web, donc bien que vous soyez techniquement correct, ce n'est pas ce que les gens attendent. Il n'en demeure pas moins que bien qu'ayant, c'est-à-dire "Copyright 2007, tous droits réservés" figurant en bas de page d'une page contenant un article rédigé en 2007, soit techniquement correct, les visiteurs du site sont susceptibles de supposer que le site a été abandonné. les sociétés avec des équipes d'avocats tamponnent toujours leurs pages Web avec l'année en cours, même si c'est '2007-2015'
Nathan Hornby

Réponses:

1152

Vous pouvez utiliser soit la date, soit le strftime . Dans ce cas, je dirais que cela n'a pas d'importance car une année est une année, peu importe quoi (à moins qu'il y ait un lieu qui formate l'année différemment?)

Par exemple:

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

Sur une note latérale, lors du formatage des dates en PHP, il importe lorsque vous souhaitez formater votre date dans un lieu différent de celui par défaut. Si c'est le cas, vous devez utiliser setlocale et strftime. Selon le manuel php à ce jour:

Pour formater les dates dans d'autres langues, vous devez utiliser les fonctions setlocale () et strftime () au lieu de date ().

De ce point de vue, je pense qu'il serait préférable d'utiliser autant que possible strftime, si vous avez même une possibilité à distance d'avoir à localiser votre application. Si ce n'est pas un problème, choisissez celui que vous préférez.

Erik van Brakel
la source
4
@ErikvanBrakel juste par intérêt l'année en cours en Thaïlande est 2556. Je ne sais pas si les paramètres régionaux PHP en tiennent compte, mais dans un monde parfait, cela devrait :)
Dirk Hartzer Waldeck
Vous pourriez simplement dire: date ("Y");
Ftw années chinoises et japonaises! 2016 年 / 二千 十六 年
Panzercrisis
3
Si je pouvais le faire sur Youtube. "Comme si vous regardiez ceci à la <? Php echo date (" Y ");?>"
Luka
Pourquoi j'ai utilisé 'y'? : /
Guga Nemsitsveridze
515
<?php echo date("Y"); ?>
Daniel Papasian
la source
32
Aussi,<?= date('Y') ?>
Shane Reustle
33
les balises courtes ne sont pas prises en charge par tous les serveurs et il y a aussi ceci: programmers.stackexchange.com/questions/151661/…
Dirk Hartzer Waldeck
5
En PHP 5.4, vous pouvez librement utiliser des balises d'écho courtes comme ci-dessus. Ils sont beaucoup plus agréables dans les vues à mon humble avis.
Jimbo
1
@ShaneReustle, vous avez manqué les points-virgules à la fin;) Je sais qu'ils ne sont pas importants dans ce cas, mais c'est une bonne pratique pour les débutants :)
Dimitar
204

Ma version super paresseuse d'afficher une ligne de copyright, qui reste automatiquement mise à jour:

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

Cette année (2008), il dira:

© 2008 Me, Inc.

L'année prochaine, il dira:

© 2008-2009 Me, Inc.

et restez toujours à jour avec l'année en cours.


Ou (PHP 5.3.0+) une manière compacte de le faire en utilisant une fonction anonyme afin que vous n'ayez aucune fuite de variables et ne répétiez pas le code / les constantes:

&copy; 
<?php call_user_func(function($y){$c=date('Y');echo $y.(($y!=$c)?'-'.$c:'');}, 2008); ?> 
Me, Inc.
gregmac
la source
15
Version plus courte (mais moins lisible):&copy; <?php echo 2008 != date('Y') ? '2008 - ' . date('Y') : 2008; ?> Me, Inc.
hitautodestruct
Ma version en une seule ligne:<?php echo '&copy; 2008', ($year = gmdate("Y")) !== '2008'? ' - '.$year : '', ' Me, Inc.'; ?>
ale5000
71

Avec PHP se dirigeant dans une direction plus orientée objet, je suis surpris que personne ici n'ait référencé la DateTimeclasse intégrée :

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

ou one-liner avec accès membre de classe sur instanciation (php> = 5.4):

$year = (new DateTime)->format("Y");
Thomas Kelley
la source
28
strftime("%Y");

J'adore le strftime . C'est une excellente fonction pour saisir / recombiner des morceaux de dates / heures.

De plus, il respecte les paramètres régionaux que la fonction de date ne fait pas.

Mark Biek
la source
14

Celui-ci vous donne l'heure locale:

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

Et celui-ci UTC :

$year = gmdate('Y'); // 2008
Alexey Lebedev
la source
12

Pour une représentation à 4 chiffres:

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

Représentation à 2 chiffres:

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

Consultez la documentation php pour plus d'informations: https://secure.php.net/manual/en/function.date.php

joan16v
la source
12

Voici ce que je fais:

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

ci-dessous est un peu d'explication de ce qu'il fait:

d = day
m = month
Y = year

Y vous donnera quatre chiffres (par exemple 1990) et y pour deux chiffres (par exemple 90)

Abdul Rahman A Samad
la source
10

echo date('Y')vous donne l'année en cours, et cela se mettra à jour automatiquement depuis date()nous donner la date actuelle.

kkarayat
la source
8

utiliser une fonction PHP qui vient d'être appelée date() .

Il prend la date actuelle et vous lui fournissez un format

et le format va juste être Y. Le capital Y va être une année à quatre chiffres.

<?php echo date("Y"); ?>
Wael Assaf
la source
8
<?php echo date("Y"); ?>

Ce code devrait faire

Abdelkader Soudani
la source
1
Essayez d'éviter les balises de formulaire court, que ce soit <? ou <? = parce que ce n'est pas une bonne pratique. Il convient de mentionner cependant que de nombreux bons frameworks comme Zend n'autorisent pas le raccourci du lien d'ouverture de balise PHP .
Wael Assaf
7

Si votre serveur prend en charge les balises courtes ou si vous utilisez PHP 5.4, vous pouvez utiliser:

<?=date("Y")?>
PanicGrip
la source
6
S'il vous plaît, n'utilisez plus jamais, jamais, jamais de raccourcis. stackoverflow.com/questions/200640/…
Jelmer
php v5.4.0 - la balise <? = est toujours disponible quel que soit le paramètre ini short_open_tag. Vous pouvez donc maintenant utiliser cette syntaxe.
nektobit
7

Ecrivez:

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

Et «faire écho» à cette valeur ...

saadk
la source
5

Vous pouvez utiliser la simple classe de date PHP. Il fournit de nombreuses méthodes et fonctions utiles:

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

Vous pouvez consulter la page des didacticiels de la bibliothèque pour plus d'exemples

est un
la source
5

BTW ... il existe quelques moyens appropriés pour afficher les droits d'auteur du site. Certaines personnes ont tendance à rendre les choses redondantes, c'est-à-dire: Copyright © ont tous deux la même signification. Les parties importantes du droit d'auteur sont:

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

En utilisant 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
Milan
la source
5

Jusqu'à 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 vous pouvez l'utiliser avec une seule ligne

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

Si vous voulez augmenter ou diminuer l'année une autre méthode; ajouter une ligne de modification comme ci-dessous.

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

utiliser une date()fonction PHP .

et le format va juste être Y. Le capital Y va être une année à quatre chiffres.

<?php echo date("Y"); ?>
Sanu0786
la source
4

meilleur shortcode pour cette section:

<?= date("Y"); ?>
Omid Ahmadyani
la source
J'allais écrire la même chose: D
Lukas
3

Obtenez l'année complète utilisée:

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

Ou utilisez seulement deux chiffres de l'année comme ceci:

 <?php 
    echo $curr_year = date('y'); // it will display short 2 digit year ex. 17
?>
Ganesh Udmale
la source
3

Ma façon de montrer le copyright, qui continue de se mettre à jour automatiquement

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

Il affichera les résultats sous la forme

copyright @ 2017   //if $copyYear is 2017 
copyright @ 2017-201x    //if $copyYear is not equal to Current Year.
Sushank Pokharel
la source
2
<?php date_default_timezone_set("Asia/Kolkata");?><?=date("Y");?>

Vous pouvez l'utiliser dans les sections de pied de page pour obtenir une année de copyright dynamique

imtaher
la source
0

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

Hernán Eche
la source
-1
<?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;
?>
Gaurav
la source
1
Ce n'est pas ce qu'ils demandent ni une réponse expliquée.
Elliot A.