Obtenga el año actual en JavaScript


975

¿Cómo obtengo el año actual en JavaScript?


10
Sorprendente si realmente no hay un duplicado para esto. Este está cerca, pero no es exacto.
TJ Crowder

55
Consiga una referencia, esta es una simple búsqueda Fecha Objeto
epascarello

2
Tenga en cuenta que el año "actual" no es necesariamente el mismo para todos en el planeta al mismo tiempo. Hay que tener en cuenta la zona horaria. La mayoría de las respuestas aquí dan el año actual en la zona horaria local del usuario (suponiendo que el código se esté ejecutando en un navegador web).
Matt Johnson-Pint

Respuestas:


1762

Crea un new Date()objeto y llama getFullYear():

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

Secuestrando la respuesta aceptada para proporcionar un contexto de ejemplo básico como un pie de página que siempre muestra el año actual:

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

En otro lugar ejecutado después de que se haya cargado el HTML anterior:

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


26
Para otras funciones en la misma familia, vea: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
user456584

Para obtener el año según el tiempo universal, use getUTCFullYear ()
Courtney Pattison

2
El ejemplo de pie de página anterior sería más claro si fuera 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
Use getFullYear () en lugar de getYear (). Ver stackoverflow.com/questions/16296897/…
roland

95

Aquí hay otro método para obtener la fecha

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

Así es como lo tengo incrustado y enviado a mi página web HTML:

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

La salida a la página HTML es la siguiente:

Copyright © 2018


44
Estoy en desacuerdo. Obviamente, esta es una pregunta para principiantes y no debemos enseñar malas prácticas a nadie, especialmente a aquellos que están comenzando a aprender los fundamentos. Además, su respuesta no proporciona ninguna información nueva, como new Date().getFullYear()ya aparece en la respuesta aceptada.
leonheess

2
1.) Las malas prácticas lo dicen, pero otros no están de acuerdo ya que este es un Javascript válido de vainilla; 2.) Mi respuesta proporciona nueva información sobre cómo implementar esto dentro de una página HTML, y no solo console.log ().
Programador de Jerusalén

2
"Bueno" es subjetivo. Hay más de una forma de pelar un gato y más de una forma de resolver problemas de codificación. Si la solución es simple y funciona, ¿por qué esto no es "bueno" en su humilde opinión?
Programador de Jerusalén

1
Bueno, señor, está claro que este no es un estándar objetivo claro (y de hecho es un debate abierto), ya que hay muchos que no están de acuerdo con usted: stackoverflow.com/questions/802854/… ... y también aquí : stackoverflow.com/questions/18789190/why-not-document-write Por lo tanto, rebajar mi reputación por su opinión subjetiva no es muy bueno, ya que hay otros que estarían en desacuerdo con usted. Recuerde el punto principal aquí, y que solo proporcioné una forma simple de imprimir esto en un archivo HTML en lugar de console.log ().
Programador de Jerusalén

1
Consulte los dos enlaces anteriores donde puede ver CIENTOS de personas que no están de acuerdo con usted. También hay CIENTOS de personas que están de acuerdo con usted, por lo que no es un problema claro. Insiste en su camino o el camino alto es bastante cerrado ya que no puede estar seguro de si alguien puede decidir que document.write () es la mejor solución para sus necesidades.
Programador de Jerusalén

4

para el año actual, podemos usar getFullYear () de la clase Date , sin embargo, hay muchas funciones que puede usar según los requisitos, algunas funciones son,

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

Tome este ejemplo, puede colocarlo donde quiera mostrarlo sin hacer referencia al guión en el pie de página o en otro lugar como otras respuestas

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

Nota de copyright en el pie de página como ejemplo

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

Esta es una respuesta innecesaria.
Crocsx

@crocsx puede agregar este código en su HTML en el lugar que desea mostrar sin hacer referencia al script en el pie de página o en otro lugar como todas las demás respuestas
Majali

es lo mismo que la respuesta del Programador de Jerusalén ligeramente diferente
Crocsx

@Crocsx esta respuesta es más limpia, no incluye elementos HTML y clases CSS que suponen que usas bootstrap, es solo una línea, ¿verdad?
Majali

la pregunta es simplemente obtener el año en JS, no obtener el año y colocarlo en el pie de página. Y en ese caso, podrías haber editado la otra respuesta. De todos modos ...
Crocsx

1

Simplemente puede usar javascript como este. De lo contrario, puede usar momentJs Plugin que ayuda en aplicaciones grandes.

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 mayoría de las respuestas que se encuentran aquí son correctas solo si necesita el año actual en función de la zona horaria y la compensación de su máquina local (lado del cliente), fuente que, en la mayoría de los escenarios, no puede considerarse confiable (porque puede diferir de una máquina a otra) .

Las fuentes confiables son:

  • Reloj del servidor web (pero asegúrese de que esté actualizado)
  • API de tiempo y CDN

Detalles

Un método llamado en la Dateinstancia devolverá un valor basado en la hora local de su máquina.

Se pueden encontrar más detalles en "documentos web de MDN": objeto Fecha de JavaScript .

Para su comodidad, he agregado una nota relevante de sus documentos:

(...) los métodos básicos para obtener la fecha y la hora o sus componentes funcionan en la zona horaria y el desplazamiento locales (es decir, el sistema host).

Otra fuente que menciona esto es: objeto de fecha y hora de JavaScript

Es importante tener en cuenta que si el reloj de alguien está apagado por algunas horas o si está en una zona horaria diferente, entonces el objeto Fecha creará una hora diferente a la creada en su propia computadora.

Algunas fuentes confiables que puede usar son:

Pero si simplemente no le importa la precisión del tiempo o si su caso de uso requiere un valor de tiempo relativo al tiempo de la máquina local, entonces puede usar Datelos métodos básicos de Javascript como Date.now(), o new Date().getFullYear()(para el año en curso).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.