Hier ist das kürzeste, was ich bekommen kann:
<script>document.write(new Date().getFullYear())</script>
Das funktioniert in allen Browsern, auf die ich gestoßen bin.
Wie ich dorthin gekommen bin:
- Sie können einfach
getFullYear
die neu erstellte Date
Variable aufrufen , ohne dass eine Variable erforderlich ist. new Date().getFullYear()
mag etwas seltsam aussehen, ist aber zuverlässig: Der new Date()
Teil wird zuerst erledigt, dann der .getFullYear()
.
- Sie können das löschen
type
, da JavaScript die Standardeinstellung ist. Dies ist sogar als Teil der HTML5-Spezifikation dokumentiert , die in diesem Fall wahrscheinlich aufschreibt, was Browser bereits tun.
- Sie können das Semikolon am Ende für ein zusätzliches gespeichertes Zeichen löschen, da JavaScript über eine "automatische Semikoloneinfügung" verfügt, eine Funktion, die ich normalerweise verachte und gegen die ich mich schimpfe. In diesem speziellen Anwendungsfall sollte sie jedoch sicher genug sein.
Es ist wichtig zu beachten, dass dies nur in Browsern funktioniert, in denen JavaScript aktiviert ist. Im Idealfall wird dies besser als Offline-Batch-Job ( sed
Skript auf * nix usw.) einmal im Jahr behandelt. Wenn Sie jedoch die JavaScript-Lösung möchten, ist diese meiner Meinung nach so kurz wie möglich. (Jetzt bin ich gegangen und habe das Schicksal versucht.)
document.write
für Inline-Inhalte während der anfänglichen Analysephase verwenden (wie oben gezeigt, in einem<script>...</script>
Tag - oder in einer.js
Datei, die mit einemscript
Tag ohnedefer
oder geladen wurdeasync
). Wenn die Seite vollständig analysiert wurde, wird der Dokumentstrom geschlossen und erneutdocument.write
geöffnet. Dadurch wird das Dokument vollständig durch ein neues ersetzt. Wenn Sie ein Jahr nach Abschluss der Hauptanalyse hinzufügen möchten, möchten Sie das DOM verwenden. (Dies ist keine Änderung, es war schon immer so.)Die Antwort von TJ ist ausgezeichnet, aber ich bin auf ein Szenario gestoßen, in dem mein HTML bereits gerendert wurde und das Skript document.write den gesamten Seiteninhalt mit nur dem Datumsjahr überschrieb.
In diesem Szenario können Sie einen Textknoten mit dem folgenden Code an das vorhandene Element anhängen:
quelle
createTextNode()
interpretiert HTML nicht so,<br>
wie man einen Knoten mit HTML erstellt?Wenn Sie in Zukunft einen Zeitrahmen mit dem aktuellen Jahr (z. B. 2017) als Startjahr angeben möchten, damit es im nächsten Jahr folgendermaßen aussieht: „© 2017-2018, Company.“, Verwenden Sie den folgenden Code . Es wird jedes Jahr automatisch aktualisiert:
© Copyright 2017-2018, Firma.
Wenn das erste Jahr bereits vergangen ist, kann der kürzeste Code folgendermaßen geschrieben werden:
quelle
quelle
Die JS-Lösung funktioniert hervorragend, aber ich würde eine serverseitige Lösung empfehlen. Bei einigen der von mir überprüften Websites wurde die gesamte Seite leer und nur das Jahr wurde ab und zu angezeigt.
Der Grund dafür war das document.write, das tatsächlich über das gesamte Dokument geschrieben wurde.
Ich habe meinen Freund gebeten, eine serverseitige Lösung zu implementieren, die für ihn funktioniert hat. Der einfache Code in PHP
Genießen!
quelle
document.write
wurde, nachdem das DOM bereits geladen wurde. Die Lösung besteht darin, nichtdocument.write
nach allen DOM-Ladevorgängen zu verwenden oder, noch besser, überhaupt nicht zu verwendendocument.write
.Hier ist die kürzeste und verantwortungsvollste Version, die sowohl für AD als auch für BC funktioniert.
[Trommelwirbel ...]
Das ist es. 6 Bytes kürzer als die akzeptierte Antwort.
Wenn Sie ES5-kompatibel sein müssen, können Sie sich mit Folgendem zufrieden geben:
quelle
Dies ist die beste Lösung, die ich mir vorstellen kann und die mit reinem JavaScript funktioniert. Sie können das Element auch so gestalten, wie es in CSS verwendet werden kann. Fügen Sie einfach anstelle des Jahres hinzu, und es wird automatisch aktualisiert.
quelle
quelle
Für React.js hat Folgendes in der Fußzeile für mich funktioniert ...
quelle
laut Chrom-Audit
Die fehlerfreie Lösung lautet also:
quelle