Ich möchte einen Copyright-Hinweis in die Fußzeile einer Website setzen, aber ich finde es unglaublich geschmacklos, wenn die Jahreszahl veraltet ist.
Wie kann ich das Jahr automatisch aktualisieren mit PHP 4 o PHP 5 ?
Sie können entweder Datum o strftime . In diesem Fall würde ich sagen, dass es keine Rolle spielt, da ein Jahr ein Jahr ist, egal was es ist (es sei denn, es gibt ein Land, das die Jahreszahl anders formatiert).
Zum Beispiel:
<?php echo date("Y"); ?>
Nebenbei bemerkt: Bei der Formatierung von Daten in PHP ist es wichtig, dass Sie das Datum in einem anderen Gebietsschema als dem Standardformat formatieren. Ist dies der Fall, müssen Sie setlocale und strftime verwenden. Gemäß der php-Handbuch am Datum:
So formatieren Sie Datumsangaben in anderen Sprachen, sollten Sie die Funktionen setlocale() und strftime() Funktionen anstelle von date().
Unter diesem Gesichtspunkt wäre es meiner Meinung nach am besten, strftime so oft wie möglich zu verwenden, wenn auch nur die geringste Möglichkeit besteht, dass Sie Ihre Anwendung lokalisieren müssen. Wenn das kein Problem ist, wählen Sie das, was Ihnen am besten gefällt.
Meine superfaule Version der Anzeige einer Copyright-Zeile, die automatisch aktualisiert wird:
© <?php
$copyYear = 2008;
$curYear = date('Y');
echo $copyYear . (($copyYear != $curYear) ? '-' . $curYear : '');
?> Me, Inc.
Dieses Jahr (2008) wird es heißen:
© 2008 Me, Inc.
Nächstes Jahr wird es dann heißen:
© 2008-2009 Me, Inc.
und bleiben immer auf dem neuesten Stand des Jahres.
Oder (PHP 5.3.0+) einen kompakten Weg, um es mit einer anonymen Funktion zu tun, so dass Sie nicht haben Variablen undicht und nicht wiederholen Code/Konstanten:
©
<?php call_user_func(function($y){$c=date('Y');echo $y.(($y!=$c)?'-'.$c:'');}, 2008); ?>
Me, Inc.
Da PHP in eine mehr objektorientierte Richtung geht, bin ich überrascht, dass niemand hier auf die eingebaute DateTime
Klasse:
$now = new DateTime();
$year = $now->format("Y");
oder Einzeiler mit Zugriff auf Klassenmitglieder bei der Instanziierung (php>=5.4):
$year = (new DateTime)->format("Y");
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.