Obter o ano atual em JavaScript


975

Como obtenho o ano atual em JavaScript?


10
Surpreendente se não houver uma duplicata para isso. Este é próximo, mas não exato.
TJ Crowder

5
Obter-se uma referência, este é um simples olhar para cima Data Objeto
epascarello

2
Observe que o ano "atual" não é necessariamente o mesmo para todos no planeta ao mesmo tempo. É preciso considerar o fuso horário. A maioria das respostas aqui fornece o ano atual no fuso horário local do usuário (supondo que o código esteja sendo executado em um navegador da web).
Matt Johnson-Pint

Respostas:


1762

Crie um new Date()objeto e chame getFullYear():

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

Seqüestrar a resposta aceita para fornecer um exemplo de contexto básico, como um rodapé que sempre mostra o ano atual:

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

Em outro lugar executado após o carregamento do HTML acima:

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


26
Para outras funções na mesma família, consulte: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
user456584

Para obter o ano de acordo com o tempo universal, use getUTCFullYear ()
Courtney Pattison

2
O exemplo do rodapé acima seria mais claro se fosse apenas: <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
Use getFullYear () em vez de getYear (). Veja stackoverflow.com/questions/16296897/…
roland

95

Aqui está outro método para obter a 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

É assim que eu o incorporo e produzo na minha página HTML:

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

A saída para a página HTML é a seguinte:

Direitos autorais © 2018


4
Discordo. Esta é obviamente uma pergunta para iniciantes e não devemos ensinar más práticas a ninguém, especialmente àqueles que estão começando a aprender os fundamentos. Além disso, sua resposta não fornece nenhuma informação nova, como new Date().getFullYear()já é apresentado na resposta aceita.
Leonheess

2
1.) A prática recomendada diz que você, mas outros discordam, pois isso é Javascript baunilha válido; 2.) Minha resposta fornece novas informações de como implementar isso em uma página HTML, e não apenas console.log ().
Programador de Jerusalém

2
"Bom" é subjetivo. Há mais de uma maneira de esfolar um gato e mais de uma maneira de resolver problemas de codificação. Se a solução é simples e funciona, por que isso não é "bom" na sua humilde opinião?
Programador de Jerusalém

1
Bem, senhor, está claro que esse não é um padrão objetivo claro (e de fato é um debate aberto), pois há muitos que discordam de você: stackoverflow.com/questions/802854/… ... e também aqui : stackoverflow.com/questions/18789190/why-not-document-write Portanto, a marcação de minha reputação por sua opinião subjetiva não é muito agradável, pois há outras pessoas que discordariam de você. Lembre-se do ponto principal aqui, e que eu forneci apenas uma maneira simples de imprimir isso no arquivo HTML, em vez de console.log ().
Programador de Jerusalém

1
Por favor, veja os dois links anteriores, onde você pode ver centenas de pessoas que discordam de você. Também existem centenas de pessoas que concordam com você, portanto não é uma questão clara. Você insiste em seguir o seu caminho ou o caminho mais alto é bastante fechado, pois você não pode ter certeza se alguém pode decidir que document.write () é a melhor solução para suas necessidades.
Programador de Jerusalém

4

para o ano atual, podemos usar getFullYear () da classe Date; no entanto, existem muitas funções que você pode usar de acordo com os requisitos, algumas funções são:

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

Veja este exemplo, você pode colocá-lo onde quiser, sem se referir ao script no rodapé ou em outro lugar, como outras respostas

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

Nota de direitos autorais no rodapé como exemplo

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

Esta é uma resposta desnecessária.
Crocsx 20/09/19

@crocsx você pode adicionar este código em seu HTML no lugar que você quer mostrá-lo sem se referir ao roteiro no rodapé ou em algum outro lugar como todas as outras respostas
Majali

é o mesmo como a resposta de Jerusalém programador ligeiramente diferente
Crocsx

@Crocsx esta resposta é mais limpa, não inclui elemento HTML e classes CSS que pressupõem que você usa o bootstrap, é apenas uma linha, certo?
Majali

a questão é apenas pegar o ano em JS, não pegar o ano e colocá-lo no rodapé. E nesse caso, você poderia ter editado a outra resposta. Enfim ...
Crocsx 20/09/19

1

Você pode simplesmente usar javascript como este. Caso contrário, você pode usar o plugin momentJs, que ajuda em grandes aplicações.

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

A maioria das respostas encontradas aqui está correta apenas se você precisar do ano atual com base no fuso horário e no deslocamento da máquina local (lado do cliente) - fonte que, na maioria dos cenários, não pode ser considerada confiável (porque pode variar de máquina para máquina) .

As fontes confiáveis ​​são:

  • Relógio do servidor da Web (mas verifique se ele está atualizado)
  • APIs de tempo e CDNs

Detalhes

Um método chamado na Dateinstância retornará um valor com base no horário local da sua máquina.

Mais detalhes podem ser encontrados em "MDN web docs": JavaScript Date object .

Para sua conveniência, adicionamos uma nota relevante dos documentos deles:

(...) os métodos básicos para buscar a data e a hora ou seus componentes funcionam no fuso horário local (ou seja, sistema host) e deslocamento.

Outra fonte mencionando isso é: objeto de data e hora do JavaScript

é importante observar que, se o relógio de alguém estiver desativado por algumas horas ou estiver em um fuso horário diferente, o objeto Data criará um horário diferente daquele criado no seu próprio computador.

Algumas fontes confiáveis ​​que você pode usar são:

Mas se você simplesmente não se importa com a precisão do tempo ou se o seu caso de uso exigir um valor de tempo relativo ao horário da máquina local, poderá usar com segurança Dateos métodos básicos do Javascript como Date.now(), ou new Date().getFullYear()(para o ano atual).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.