Ottieni l'anno corrente in JavaScript


975

Come posso ottenere l'anno corrente in JavaScript?


10
Sorprendente se non c'è davvero un duplicato per questo. Questo è vicino, ma non esatto.
TJ Crowder,

5
Fatti un riferimento, questo è un semplice look Date Date
epascarello

2
Si noti che l'anno "attuale" non è necessariamente lo stesso per tutti gli abitanti del pianeta allo stesso tempo. Bisogna considerare il fuso orario. La maggior parte delle risposte qui forniscono l'anno corrente nel fuso orario locale dell'utente (supponendo che il codice sia in esecuzione in un browser Web).
Matt Johnson-Pint,

Risposte:


1762

Crea un new Date()oggetto e chiama getFullYear():

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

Dirottare la risposta accettata per fornire alcuni esempi di contesto come un piè di pagina che mostra sempre l'anno corrente:

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

Da qualche altra parte eseguito dopo che è stato caricato l'HTML sopra:

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


26
Per altre funzioni nella stessa famiglia, vedere: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
user456584

Per ottenere l'anno in base al tempo universale, usa getUTCFullYear ()
Courtney Pattison,

2
L'esempio di piè di pagina sopra sarebbe più chiaro se fosse solo: <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
Utilizzare getFullYear () anziché getYear (). Vedi stackoverflow.com/questions/16296897/…
roland

95

Ecco un altro metodo per ottenere la data

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

È così che l'ho incorporato e trasmesso alla mia pagina Web HTML:

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

L'output alla pagina HTML è il seguente:

Copyright © 2018


4
Non sono d'accordo. Questa è ovviamente una domanda per principianti e non dovremmo insegnare cattive pratiche a nessuno, specialmente a coloro che stanno iniziando ad apprendere i fondamenti. Inoltre, la tua risposta non fornisce alcuna nuova informazione come new Date().getFullYear()è già presente nella risposta accettata.
leonheess,

2
1.) Le cattive pratiche ti dicono, ma altri non sono d'accordo dal momento che questo è Javascript Javascript vanigliato valido; 2.) La mia risposta fornisce nuove informazioni su come implementarlo all'interno di una pagina HTML e non solo console.log ().
Programmatore di Gerusalemme,

2
"Buono" è soggettivo. Esiste più di un modo per scuoiare un gatto e più di un modo per risolvere i problemi di codifica. Se la soluzione è semplice e funziona, perché questo non è "buono" secondo la tua modesta opinione?
Programmatore di Gerusalemme,

1
Bene, signore, è chiaro che questo non è uno standard oggettivo ben definito (e in effetti è un dibattito aperto), poiché ci sono molti che non sono d'accordo con lei: stackoverflow.com/questions/802854/… ... e anche qui : stackoverflow.com/questions/18789190/why-not-document-write Pertanto, segnare la mia reputazione per la tua opinione soggettiva non è molto bello poiché ci sono altri che non sarebbero d'accordo con te. Ricorda il punto principale qui e che ho appena fornito un modo semplice per stampare questo file HTML anziché console.log ().
Programmatore di Gerusalemme,

1
Si prega di consultare i due link precedenti in cui è possibile vedere centinaia di persone che non sono d'accordo con te. Ci sono anche centinaia di persone che sono d'accordo con te, quindi non è un problema chiaro. Insisti sulla tua strada o sulla strada maestra è piuttosto di mentalità chiusa poiché non puoi essere sicuro che qualcuno possa decidere che document.write () è la soluzione migliore per i suoi bisogni.
Programmatore di Gerusalemme,

4

per l'anno in corso possiamo usare getFullYear () dalla classe Date ma ci sono molte funzioni che puoi usare secondo i requisiti, alcune funzioni sono come,

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

Prendi questo esempio, puoi posizionarlo ovunque tu voglia mostrarlo senza fare riferimento allo script nel piè di pagina o da qualche altra parte come altre risposte

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

Nota sul copyright a piè di pagina come esempio

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

Questa è una risposta non necessaria.
Crocsx,

@crocsx puoi aggiungere questo codice nel tuo HTML nel punto in cui vuoi mostrarlo senza fare riferimento allo script nel piè di pagina o da qualche altra parte come tutte le altre risposte
Majali

è la stessa della risposta del programmatore di Gerusalemme leggermente diversa
Crocsx,

@Crocsx questa risposta è più pulita non include elementi HTML e classi CSS che presuppongono che tu usi bootstrap, è solo una riga, giusto?
Majali,

la domanda è solo ottenere l'anno in JS, non ottenere l'anno e inserirlo nel piè di pagina. E in quel caso, avresti potuto modificare l'altra risposta. Comunque ...
Crocsx,

1

Puoi semplicemente usare JavaScript come questo. Altrimenti puoi usare il plugin momentJs che aiuta in applicazioni di grandi dimensioni.

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

La maggior parte delle risposte trovate qui sono corrette solo se è necessario l'anno corrente in base al fuso orario e all'offset della macchina locale (lato client) - fonte che, nella maggior parte degli scenari, non può essere considerata affidabile (perché può differire da macchina a macchina) .

Fonti affidabili sono:

  • Orologio del server Web (ma assicurati che sia aggiornato)
  • API e CDN temporali

Dettagli

Un metodo chiamato Datesull'istanza restituirà un valore basato sull'ora locale della macchina.

Ulteriori dettagli sono disponibili in "Documenti Web MDN": oggetto Date JavaScript .

Per comodità, ho aggiunto una nota pertinente dai loro documenti:

(...) i metodi di base per recuperare la data e l'ora o i suoi componenti funzionano tutti nel fuso orario locale (cioè sistema host) e offset.

Un'altra fonte che menziona questo è: oggetto data e ora JavaScript

è importante notare che se l'orologio di qualcuno è spento di alcune ore o si trova in un fuso orario diverso, l'oggetto Date creerà un orario diverso da quello creato sul proprio computer.

Alcune fonti affidabili che è possibile utilizzare sono:

Ma se semplicemente non ti interessa la precisione del tempo o se il tuo caso d'uso richiede un valore temporale relativo al tempo della macchina locale, puoi tranquillamente utilizzare Datei metodi di base di Javascript come Date.now(), o new Date().getFullYear()(per l'anno in corso).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.