Holen Sie sich das aktuelle Jahr in JavaScript


975

Wie bekomme ich das aktuelle Jahr in JavaScript?


10
Erstaunlich, wenn es dafür wirklich kein Duplikat gibt. Dieser ist nah, aber nicht genau.
TJ Crowder

5
Holen Sie sich eine Referenz, dies ist eine einfache Suche Datum Objekt
Epascarello

2
Beachten Sie, dass das "aktuelle" Jahr nicht unbedingt für alle auf dem Planeten zur gleichen Zeit gleich ist. Man muss die Zeitzone berücksichtigen. Die meisten Antworten hier geben das aktuelle Jahr in der lokalen Zeitzone des Benutzers an (vorausgesetzt, der Code wird in einem Webbrowser ausgeführt).
Matt Johnson-Pint

Antworten:


1761

Erstellen Sie ein new Date()Objekt und rufen Sie auf getFullYear():

new Date().getFullYear()
// returns the current year

Entführung der akzeptierten Antwort, um einen grundlegenden Beispielkontext wie eine Fußzeile bereitzustellen, in der immer das aktuelle Jahr angezeigt wird:

<footer>
    &copy; <span id="year"></span>
</footer>

An einer anderen Stelle ausgeführt, nachdem der obige HTML-Code geladen wurde:

<script>
    document.getElementById("year").innerHTML = new Date().getFullYear();
</script>


26
Weitere Funktionen in derselben Familie finden Sie unter: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
user456584

Um das Jahr gemäß der Weltzeit zu erhalten,
Courtney Pattison

2
Das obige Fußzeilenbeispiel wäre klarer, wenn es nur wäre: <footer> <span id = "year"> </ span> </ footer>
Mike

227
// Return today's date and time
var currentTime = new Date()

// returns the month (from 0 to 11)
var month = currentTime.getMonth() + 1

// returns the day of the month (from 1 to 31)
var day = currentTime.getDate()

// returns the year (four digits)
var year = currentTime.getFullYear()

// write output MM/dd/yyyy
document.write(month + "/" + day + "/" + year)


3
Verwenden Sie getFullYear () anstelle von getYear (). Siehe stackoverflow.com/questions/16296897/...
roland

95

Hier ist eine andere Methode, um das Datum zu erhalten

new Date().getDate()          // Get the day as a number (1-31)
new Date().getDay()           // Get the weekday as a number (0-6)
new Date().getFullYear()      // Get the four digit year (yyyy)
new Date().getHours()         // Get the hour (0-23)
new Date().getMilliseconds()  // Get the milliseconds (0-999)
new Date().getMinutes()       // Get the minutes (0-59)
new Date().getMonth()         // Get the month (0-11)
new Date().getSeconds()       // Get the seconds (0-59)
new Date().getTime()          // Get the time (milliseconds since January 1, 1970)

5

So habe ich es eingebettet und auf meiner HTML-Webseite ausgegeben:

<div class="container">
    <p class="text-center">Copyright &copy; 
        <script>
            var CurrentYear = new Date().getFullYear()
            document.write(CurrentYear)
        </script>
    </p>
</div>

Die Ausgabe auf die HTML-Seite erfolgt wie folgt:

Copyright © 2018


4
Ich stimme dir nicht zu. Dies ist offensichtlich eine Anfängerfrage, und wir sollten niemandem schlechte Praktiken beibringen, insbesondere denen, die anfangen, die Grundlagen zu lernen. Darüber hinaus enthält Ihre Antwort keine neuen Informationen, wie sie new Date().getFullYear()bereits in der akzeptierten Antwort enthalten sind.
Leonheess

2
1.) Schlechte Praxis sagt Ihnen, aber andere sind anderer Meinung, da dies gültiges Vanille-Javascript ist; 2.) Meine Antwort enthält neue Informationen zur Implementierung in einer HTML-Seite und nicht nur in console.log ().
Jerusalem Programmer

2
"Gut" ist subjektiv. Es gibt mehr als einen Weg, eine Katze zu häuten, und mehr als einen Weg, Codierungsprobleme zu lösen. Wenn die Lösung einfach ist und funktioniert, warum ist das dann Ihrer bescheidenen Meinung nach nicht "gut"?
Jerusalem Programmer

1
Nun, Sir, es ist klar, dass dies kein klarer objektiver Standard ist (und in der Tat eine offene Debatte ist), da es viele gibt, die mit Ihnen nicht einverstanden sind: stackoverflow.com/questions/802854/… ... und auch hier : stackoverflow.com/questions/18789190/why-not-document-write Daher ist es nicht sehr schön, wenn Sie meinen Ruf für Ihre subjektive Meinung herabsetzen , da es andere gibt, die Ihnen nicht zustimmen würden. Denken Sie an den Hauptpunkt hier und daran, dass ich nur eine einfache Möglichkeit zum Drucken in eine HTML-Datei anstelle von console.log () bereitgestellt habe.
Jerusalem Programmer

1
Bitte beachten Sie die beiden vorherigen Links, auf denen Sie Hunderte von Personen sehen können, die mit Ihnen nicht einverstanden sind. Es gibt auch Hunderte von Menschen, die Ihnen zustimmen, daher ist dies kein eindeutiges Problem. Sie bestehen auf Ihrem Weg oder dem hohen Weg und sind ziemlich verschlossen, da Sie nicht sicher sein können, ob jemand entscheiden kann, dass document.write () die beste Lösung für seine Bedürfnisse ist.
Jerusalem Programmer

4

Für das aktuelle Jahr können wir getFullYear () aus der Date- Klasse verwenden. Es gibt jedoch viele Funktionen, die Sie gemäß den Anforderungen verwenden können. Einige Funktionen sind wie folgt :

var now = new Date()
console.log("Current Time is: " + now);

// getFullYear function will give current year 
var currentYear = now.getFullYear()
console.log("Current year is: " + currentYear);

// getYear will give you the years after 1990 i.e currentYear-1990
var year = now.getYear()
console.log("Current year is: " + year);

// getMonth gives the month value but months starts from 0
// add 1 to get actual month value 
var month = now.getMonth() + 1
console.log("Current month is: " + month);

// getDate gives the date value
var day = now.getDate()
console.log("Today's day is: " + day);


2

In diesem Beispiel können Sie es überall dort platzieren, wo Sie es anzeigen möchten, ohne auf das Skript in der Fußzeile oder an einer anderen Stelle wie bei anderen Antworten zu verweisen

<script>new Date().getFullYear()>document.write(new Date().getFullYear());</script>

Copyright-Hinweis in der Fußzeile als Beispiel

Copyright 2010 - <script>new Date().getFullYear()>document.write(new Date().getFullYear());</script>

Dies ist eine unnötige Antwort.
Crocsx

@crocsx Sie können diesen Code in Ihrem HTML an der Stelle hinzufügen, an der Sie ihn anzeigen möchten, ohne auf das Skript in der Fußzeile oder an einer anderen Stelle wie bei allen anderen Antworten zu verweisen
Majali

ist die gleiche wie die Antwort von Jerusalem Programmer etwas anders
Crocsx

@Crocsx diese Antwort ist sauberer enthält keine HTML-Elemente und CSS-Klassen, die davon ausgehen, dass Sie Bootstrap verwenden, es ist nur eine Zeile, oder?
Majali

Die Frage ist nur, das Jahr in JS abzurufen, nicht das Jahr abzurufen und es in die Fußzeile zu setzen. In diesem Fall hätten Sie auch die andere Antwort bearbeiten können. Wie auch immer ...
Crocsx

1

Sie können einfach Javascript wie dieses verwenden. Andernfalls können Sie das momentJs Plugin verwenden, das bei großen Anwendungen hilfreich ist .

new Date().getDate()          // Get the day as a number (1-31)
new Date().getDay()           // Get the weekday as a number (0-6)
new Date().getFullYear()      // Get the four digit year (yyyy)
new Date().getHours()         // Get the hour (0-23)
new Date().getMilliseconds()  // Get the milliseconds (0-999)
new Date().getMinutes()       // Get the minutes (0-59)
new Date().getMonth()         // Get the month (0-11)
new Date().getSeconds()       // Get the seconds (0-59)
new Date().getTime()          // Get the time (milliseconds since January 1, 1970)

function generate(type,element)
{
	var value = "";
	var date = new Date();
	switch (type) {
		case "Date":
			value = date.getDate();		// Get the day as a number (1-31)
			break;
		case "Day":
			value = date.getDay();		// Get the weekday as a number (0-6)
			break;
		case "FullYear":
			value = date.getFullYear();	// Get the four digit year (yyyy)
			break;
		case "Hours":
			value = date.getHours();	// Get the hour (0-23)
			break;
		case "Milliseconds":
			value = date.getMilliseconds();	// Get the milliseconds (0-999)
			break;
		case "Minutes":
			value = date.getMinutes();     // Get the minutes (0-59)
			break;
		case "Month":
			value = date.getMonth();	// Get the month (0-11)
			break;
		case "Seconds":
			value = date.getSeconds();	// Get the seconds (0-59)
			break;
		case "Time":
			value = date.getTime();		// Get the time (milliseconds since January 1, 1970)
			break;
	}

	$(element).siblings('span').text(value);
}
li{
  list-style-type: none;
  padding: 5px;
}

button{
  width: 150px;
}

span{
  margin-left: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<ul>
	<li>
		<button type="button" onclick="generate('Date',this)">Get Date</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Day',this)">Get Day</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('FullYear',this)">Get Full Year</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Hours',this)">Get Hours</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Milliseconds',this)">Get Milliseconds</button>
		<span></span>
	</li>

	<li>
		<button type="button" onclick="generate('Minutes',this)">Get Minutes</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Month',this)">Get Month</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Seconds',this)">Get Seconds</button>
		<span></span>
	</li>
	<li>
		<button type="button" onclick="generate('Time',this)">Get Time</button>
		<span></span>
	</li>
</ul>


0

TL; DR

Die meisten der hier gefundenen Antworten sind nur dann richtig , wenn Sie das aktuelle Jahr basierend auf der Zeitzone und dem Offset Ihrer lokalen Maschine (clientseitig) benötigen - Quelle, die in den meisten Szenarien nicht als zuverlässig angesehen werden kann (da sie von Maschine zu Maschine unterschiedlich sein kann). .

Zuverlässige Quellen sind:

  • Uhr des Webservers (aber stellen Sie sicher, dass sie aktualisiert ist)
  • Zeit-APIs und CDNs

Einzelheiten

Eine für die DateInstanz aufgerufene Methode gibt einen Wert zurück, der auf der Ortszeit Ihres Computers basiert.

Weitere Details finden Sie unter "MDN-Webdokumente": JavaScript-Datumsobjekt .

Für Ihre Bequemlichkeit habe ich einen relevanten Hinweis aus ihren Dokumenten hinzugefügt:

(...) Die grundlegenden Methoden zum Abrufen von Datum und Uhrzeit oder ihrer Komponenten funktionieren alle in der lokalen Zeitzone (dh im Hostsystem) und im Offset.

Eine andere Quelle, die dies erwähnt, ist: JavaScript-Objekt für Datum und Uhrzeit

Es ist wichtig zu beachten, dass das Date-Objekt eine andere Uhrzeit erstellt als die auf Ihrem eigenen Computer erstellte, wenn die Uhr einer Person um einige Stunden versetzt ist oder sich in einer anderen Zeitzone befindet.

Einige zuverlässige Quellen, die Sie verwenden können, sind:

Wenn Sie sich jedoch einfach nicht um die Zeitgenauigkeit kümmern oder wenn Ihr Anwendungsfall einen Zeitwert relativ zur Zeit des lokalen Computers erfordert, können Sie sicher die Dategrundlegenden Methoden von Javascript wie Date.now()oder new Date().getFullYear()(für das aktuelle Jahr) verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.