Wie verwende ich PHP, um das aktuelle Jahr zu erhalten?

937

Ich möchte einen Copyright-Hinweis in die Fußzeile einer Website einfügen, aber ich denke, es ist unglaublich schwierig, wenn das Jahr nicht mehr aktuell ist. Wie würde ich das Jahr automatisch mit PHP 4 und PHP 5 aktualisieren ?

JD Graffam
quelle
630
echo date("Y");
Doub1ejack
2
Damit habe ich eine Warnung bekommen. Date_default_timezone_set ('UTC') hinzugefügt; um die Warnung zu vermeiden. ('UTC + 1' funktioniert nicht ... kann Ihnen nicht viel sagen, als nur mit PHP zu beginnen). Wahrscheinlich gibt es eine Möglichkeit, PHP zu konfigurieren, um zu vermeiden, dass die Warnungen ausgegeben werden (in einigen Konfigurationsdateien wie php.ini).
Justin
4
@justin Dies bedeutet, dass Sie die Standardzeitzone nicht festgelegt haben und PHP das nicht mag. Sie können entweder die Standardzeitzone in der php.iniDatei mit etwas wie date.timezone = "America/Los_Angeles"festlegen oder Sie können sie am Anfang Ihres Codes mit etwas wie festlegen date_default_timezone_set( "America/Los_Angeles" ).
Joshua Pinter
7
HINWEIS: Das Jahr in einem Urheberrechtshinweis hat nicht wirklich viel rechtlichen Wert, wird jedoch normalerweise hinzugefügt, um Personen zu helfen, die wissen möchten, ob das Urheberrecht noch gilt. Als solches soll es das Jahr sein, in dem die Arbeit veröffentlicht wurde. Nur das aktuelle Jahr zu benutzen macht wirklich keinen Sinn ... Allerdings habe ich es unzählige Male gesehen.
Stijn de Witt
7
Ich persönlich würde argumentieren, dass es sich um eine Webkonvention handelt. Obwohl Sie technisch korrekt sind, ist dies nicht das, was die Leute erwarten. Es bleibt die Tatsache, dass, obwohl "Copyright 2007, alle Rechte vorbehalten" in der Fußzeile einer Seite mit einem Artikel aus dem Jahr 2007 technisch korrekt ist, Besucher der Website wahrscheinlich davon ausgehen, dass die Website aufgegeben wurde. Auch groß Unternehmen mit Anwaltsteams stempeln ihre Webseiten immer noch mit dem aktuellen Jahr, auch wenn es "2007-2015" ist.
Nathan Hornby

Antworten:

1152

Sie können entweder Datum oder Uhrzeit verwenden . In diesem Fall würde ich sagen, dass es keine Rolle spielt, da ein Jahr ein Jahr ist, egal was passiert (es sei denn, es gibt ein Gebietsschema, das das Jahr anders formatiert?).

Zum Beispiel:

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

Nebenbei bemerkt ist es beim Formatieren von Daten in PHP wichtig, wann Sie Ihr Datum in einem anderen Gebietsschema als Ihrem Standardformat formatieren möchten. In diesem Fall müssen Sie setlocale und strftime verwenden. Laut PHP-Handbuch am Datum:

Um Datumsangaben in anderen Sprachen zu formatieren, sollten Sie anstelle von date () die Funktionen setlocale () und strftime () verwenden.

Unter diesem Gesichtspunkt denke ich, dass es am besten ist, strftime so oft wie möglich zu verwenden, wenn Sie sogar eine entfernte Möglichkeit haben, Ihre Anwendung lokalisieren zu müssen. Wenn dies kein Problem ist, wählen Sie das aus, das Ihnen am besten gefällt.

Erik van Brakel
quelle
4
@ErikvanBrakel gerade aus Interesse das aktuelle Jahr in Thailand ist 2556. Ich bin mir nicht sicher, ob das PHP-Gebietsschema dies berücksichtigt, aber in einer perfekten Welt sollte es :)
Dirk Hartzer Waldeck
Man könnte einfach sagen: Datum ("Y");
Chinesische und japanische Jahre ftw! 2016 年 / 二千 十六 年
Panzercrisis
3
Wenn ich das auf Youtube machen könnte. "Als ob Sie dies in <? Php echo date (" Y ") sehen;?>"
Luka
Warum habe ich verwendet 'y'? : /
Guga Nemsitsveridze
515
<?php echo date("Y"); ?>
Daniel Papasian
quelle
32
Auch<?= date('Y') ?>
Shane Reustle
33
kurze Tags werden nicht von allen Servern unterstützt und es gibt auch Folgendes: programmers.stackexchange.com/questions/151661/…
Dirk Hartzer Waldeck
5
In PHP 5.4 können Sie kurze Echo-Tags wie die oben genannten frei verwenden. Sie sind viel schöner in Ansichten imho.
Jimbo
1
@ ShaneReustle, du hast die Semikolons am Ende verpasst;) Ich weiß, dass sie in diesem Fall nicht wichtig sind, aber es ist eine gute Übung für Anfänger :)
Dimitar
204

Meine super faule Version des Zeigens einer Copyright-Zeile, die automatisch aktualisiert bleibt:

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

In diesem Jahr (2008) heißt es:

© 2008 Me, Inc.

Nächstes Jahr heißt es:

© 2008-2009 Me, Inc.

und für immer mit dem aktuellen Jahr auf dem Laufenden bleiben.


Oder (PHP 5.3.0+) eine kompakte Methode, um dies mit einer anonymen Funktion zu tun, damit keine Variablen auslaufen und Code / Konstanten nicht wiederholt werden:

&copy; 
<?php call_user_func(function($y){$c=date('Y');echo $y.(($y!=$c)?'-'.$c:'');}, 2008); ?> 
Me, Inc.
Gregmac
quelle
15
Kürzere (aber weniger lesbare) Version:&copy; <?php echo 2008 != date('Y') ? '2008 - ' . date('Y') : 2008; ?> Me, Inc.
Hitautodestruct
Meine einzeilige Version:<?php echo '&copy; 2008', ($year = gmdate("Y")) !== '2008'? ' - '.$year : '', ' Me, Inc.'; ?>
ale5000
71

Da PHP in eine objektorientiertere Richtung geht, bin ich überrascht, dass hier niemand auf die integrierte DateTimeKlasse verwiesen hat :

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

oder einzeilig mit Zugriff auf Klassenmitglieder bei Instanziierung (php> = 5.4):

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

Ich liebe Strftime . Es ist eine großartige Funktion zum Abrufen / Rekombinieren von Daten- / Uhrzeitblöcken.

Außerdem werden die Gebietsschemaeinstellungen berücksichtigt, die die Datumsfunktion nicht bietet.

Mark Biek
quelle
14

Dieser gibt Ihnen die Ortszeit:

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

Und diese UTC :

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

Für 4-stellige Darstellung:

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

2-stellige Darstellung:

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

Weitere Informationen finden Sie in der PHP-Dokumentation: https://secure.php.net/manual/en/function.date.php

joan16v
quelle
12

Folgendes mache ich:

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

Im Folgenden finden Sie eine Erklärung, was es tut:

d = day
m = month
Y = year

Y gibt Ihnen vier Ziffern (zB 1990) und Y zwei Ziffern (zB 90)

Abdul Rahman Ein Samad
quelle
10

echo date('Y')gibt Ihnen das aktuelle Jahr an, und dieses wird automatisch aktualisiert, da Sie date()uns das aktuelle Datum mitteilen.

Karayat
quelle
8

Verwenden Sie eine PHP-Funktion, die gerade aufgerufen wird date() .

Es nimmt das aktuelle Datum an und Sie geben ihm ein Format

und das Format wird nur Y sein. Capital Y wird ein vierstelliges Jahr sein.

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

Dieser Code sollte reichen

Abdelkader Soudani
quelle
1
Vermeiden Sie Kurzform-Tags, egal ob <? oder <? = weil es keine gute Praxis ist. Es lohnt sich aber , dass viele gute Frameworks wie Zend Erwähnens nicht zulassen Stenografie PHP Starttag Link Also bitte meinetwegen ein paar Tastenanschläge durchführen , um Ihre Lesbarkeit des Codes zu speichern.
Wael Assaf
7

Wenn Ihr Server Short Tags unterstützt oder Sie PHP 5.4 verwenden, können Sie Folgendes verwenden:

<?=date("Y")?>
PanicGrip
quelle
6
Bitte verwenden Sie niemals wieder Short-Tags. stackoverflow.com/questions/200640/…
Jelmer
php v5.4.0 - das tag <? = ist immer verfügbar, unabhängig von der Einstellung short_open_tag ini. Jetzt können Sie diese Syntax verwenden.
Nektobit
7

Einfach schreiben:

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

Oder:

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

Und 'echo' diesen Wert ...

saadk
quelle
5

Sie können die einfache PHP-Datumsklasse verwenden. Es bietet viele nützliche Methoden und Funktionen:

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

Weitere Beispiele finden Sie auf der Seite mit den Bibliotheks-Tutorials

ist ein
quelle
5

Übrigens ... es gibt einige geeignete Möglichkeiten, um das Urheberrecht der Website anzuzeigen. Einige Leute neigen dazu, Dinge überflüssig zu machen, dh: Copyright © haben beide die gleiche Bedeutung. Die wichtigen urheberrechtlich geschützten Teile sind:

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

Verwenden von PHP + HTML:

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

oder

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

Für bis zu PHP 5.4+

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

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

Oder Sie können es mit einer Zeile verwenden

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

Wenn Sie das Jahr erhöhen oder verringern möchten, verwenden Sie eine andere Methode. füge eine Änderungszeile wie unten hinzu.

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

Verwenden Sie eine PHP- date()Funktion.

und das Format wird nur Y sein. Capital Y wird ein vierstelliges Jahr sein.

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

bester Shortcode für diesen Abschnitt:

<?= date("Y"); ?>
Omid Ahmadyani
quelle
Ich wollte dasselbe schreiben: D
Lukas
3

Holen Sie sich das ganze Jahr verwendet:

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

Oder lassen Sie nur zwei Ziffern des Jahres so verwenden:

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

Mein Weg, um das Urheberrecht zu zeigen, das wird automatisch aktualisiert

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

Die Ergebnisse werden als ausgegeben

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

Sie können dies in Fußzeilenabschnitten verwenden, um ein dynamisches Copyright-Jahr zu erhalten

imtaher
quelle
0

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

Hernán Eche
quelle
-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
quelle
1
Dies ist weder das, wonach sie fragen, noch eine erklärte Antwort.
Elliot A.