Pobierz bieżący rok w JavaScript


973

Jak uzyskać bieżący rok w JavaScript?


10
Zadziwiające, jeśli tak naprawdę nie ma duplikatu. Ten jest blisko, ale nie jest dokładny.
TJ Crowder

5
Zdobądź referencję, to proste wyszukiwanie Data Obiekt
epascarello

2
Zauważ, że „bieżący” rok niekoniecznie jest taki sam dla wszystkich na planecie w tym samym czasie. Należy wziąć pod uwagę strefę czasową. Większość odpowiedzi tutaj podaje bieżący rok w lokalnej strefie czasowej użytkownika (zakładając, że kod działa w przeglądarce internetowej).
Matt Johnson-Pint,

Odpowiedzi:


1758

Utwórz new Date()obiekt i wywołaj getFullYear():

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

Przejęcie zaakceptowanej odpowiedzi w celu zapewnienia podstawowego przykładu, takiego jak stopka, która zawsze pokazuje bieżący rok:

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

Gdzie indziej wykonywane po załadowaniu powyższego HTML:

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


26
Aby
poznać

Aby uzyskać rok według czasu uniwersalnego, użyj getUTCFullYear ()
Courtney Pattison,

2
Powyższy przykład stopki byłby bardziej przejrzysty, gdyby był to tylko: <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
Użyj getFullYear () zamiast getYear (). Zobacz stackoverflow.com/questions/16296897/…
roland

95

Oto kolejna metoda na uzyskanie daty

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

Oto jak mam go osadzić i wyprowadzić na moją stronę HTML:

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

Dane wyjściowe na stronie HTML są następujące:

Copyright © 2018


4
Nie zgadzam się. Jest to oczywiście pytanie dla początkujących i nie powinniśmy uczyć złych praktyk nikomu, szczególnie tym, którzy zaczynają uczyć się podstaw. Ponadto twoja odpowiedź nie zawiera żadnych nowych informacji, które new Date().getFullYear()są już zawarte w zaakceptowanej odpowiedzi.
leonheess

2
1.) Zła praktyka mówi, ale inni się nie zgadzają, ponieważ jest to poprawny waniliowy Javascript; 2.) Moja odpowiedź dostarcza nowych informacji, jak to zaimplementować na stronie HTML, a nie tylko console.log ().
Programista Jerozolimski

2
„Dobry” jest subiektywny. Istnieje więcej niż jeden sposób na skórowanie kota i więcej niż jeden sposób rozwiązywania problemów z kodowaniem. Jeśli rozwiązanie jest proste i działa, to dlaczego nie jest to według ciebie „dobre”?
Jeruzalem Programista

1
Cóż, proszę pana, jasne jest, że nie jest to jednoznacznie określony obiektywny standard (i rzeczywiście jest to otwarta debata), ponieważ jest wielu, którzy się z tobą nie zgadzają: stackoverflow.com/questions/802854/ ... ... a także tutaj : stackoverflow.com/questions/18789190/why-not-document-write W związku z tym zaznaczanie mojej reputacji dla subiektywnej opinii nie jest zbyt miłe, ponieważ są inni, którzy się z tobą nie zgodzą. Zapamiętaj główny punkt tutaj i to, że podałem prosty sposób wydrukowania tego do pliku HTML zamiast console.log ().
Programista Jerozolimski

1
Zapoznaj się z dwoma poprzednimi linkami, w których możesz zobaczyć setki osób, które się z tobą nie zgadzają. Istnieją również setki osób, które się z tobą zgadzają, więc nie jest to jednoznaczny problem. Nalegasz na swoją drogę lub droga na wysokim poziomie jest dość zamknięta, ponieważ nie możesz być pewien, czy ktoś może zdecydować, że document.write () jest najlepszym rozwiązaniem dla jego / jej potrzeb.
Programista Jerozolimski

4

w bieżącym roku możemy użyć getFullYear () z klasy Date, jednak istnieje wiele funkcji, których można użyć zgodnie z wymaganiami, niektóre funkcje są takie,

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

Weźmy ten przykład, możesz umieścić go w dowolnym miejscu bez odwoływania się do skryptu w stopce lub w innym miejscu, jak inne odpowiedzi

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

Nota o prawach autorskich w stopce jako przykład

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

To jest niepotrzebna odpowiedź.
Crocsx

@crocsx możesz dodać ten kod do swojego HTML w miejscu, w którym chcesz go pokazać bez odwoływania się do skryptu w stopce lub w innym miejscu, jak wszystkie inne odpowiedzi
Majali

jest taki sam jak odpowiedź Jeruzalem Programmer nieco inna
Crocsx

@Crocsx ta odpowiedź jest czystsza, nie zawiera elementu HTML i klas CSS, które zakładają, że używasz bootstrapu, to tylko jedna linia, prawda?
Majali

pytanie brzmi po prostu rok w JS, a nie rok i umieść go w stopce. W takim razie mogłeś zredagować drugą odpowiedź. W każdym razie ...
Crocsx,

1

Możesz po prostu użyć javascript w ten sposób. W przeciwnym razie możesz użyć wtyczki momentJs, która pomaga w dużych aplikacjach.

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

Większość znalezionych tutaj odpowiedzi jest poprawna tylko wtedy, gdy potrzebujesz bieżącego roku w oparciu o strefę czasową komputera lokalnego i przesunięcie (po stronie klienta) - źródło, które w większości scenariuszy nie może być uznane za wiarygodne (ponieważ może różnić się w zależności od maszyny) .

Wiarygodne źródła to:

  • Zegar serwera WWW (ale upewnij się, że jest zaktualizowany)
  • Interfejsy API czasu i CDN

Detale

Metoda wywoływana w Dateinstancji zwróci wartość na podstawie czasu lokalnego komputera.

Dalsze szczegóły można znaleźć w „Dokumentach internetowych MDN”: JavaScript Date object .

Dla Twojej wygody dodałem odpowiednią notatkę z ich dokumentów:

(...) wszystkie podstawowe metody pobierania daty i godziny lub jej składników działają w lokalnej strefie czasowej (np. w systemie hosta) i przesunięciu.

Kolejne źródło, które wspomina o tym, to: obiekt daty i godziny JavaScript

ważne jest, aby pamiętać, że jeśli czyjś zegar jest wyłączony o kilka godzin lub znajduje się w innej strefie czasowej, wówczas obiekt Date utworzy inny czas niż ten utworzony na twoim komputerze.

Niektóre niezawodne źródła, których możesz użyć to:

Ale jeśli po prostu nie zależy ci na dokładności czasu lub jeśli twój przypadek użycia wymaga wartości czasu względem czasu komputera lokalnego, możesz bezpiecznie korzystać z Datepodstawowych metod Javascript, takich jak Date.now(), lub new Date().getFullYear()(dla bieżącego roku).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.