Отримайте поточний рік у JavaScript


973

Як отримати поточний рік у JavaScript?


10
Дивно, якщо насправді немає дубліката для цього. Цей близький, але не точний.
TJ Crowder

5
Отримайте собі довідку, це простий пошук об’єкта дати
epascarello

2
Зауважте, що "поточний" рік не обов'язково однаковий для всіх на планеті одночасно. Треба враховувати часовий пояс. Більшість відповідей тут дає поточний рік у локальному часовому поясі користувача (якщо припустимо, що код працює у веб-браузері).
Метт Джонсон-Пінт

Відповіді:


1758

Створіть new Date()об’єкт та зателефонуйте getFullYear():

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

Викрадання прийнятої відповіді, щоб надати базовий контекст, наприклад, колонтитул, який завжди показує поточний рік:

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

Десь інше, виконане після завантаження HTML вище:

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


26
Про інші функції в тій самій родині дивіться: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
користувач456584

Щоб визначити рік за загальним часом, використовуйте getUTCFullYear ()
Кортні Паттісон

2
Наведений вище приклад нижнього колонтитулу був би більш зрозумілим, якби це було просто: <footer> <span id = "year"> </span> </footer>
Майк

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)

1
Посилання: getFullYear () | getDate () | getMonth ()
Мішель

3
Використовуйте getFullYear () замість getYear (). Дивіться stackoverflow.com/questions/16296897/…
roland

95

Ось ще один метод отримання дати

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

Ось так я вклав і вивів на свою веб-сторінку HTML:

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

Вихід на сторінку HTML такий:

Copyright © 2018


4
Я не погоджуюсь. Це, очевидно, питання для початківців, і ми не повинні навчати поганій практиці нікого, особливо тих, хто починає вивчати основи. Крім того, ваша відповідь не дає ніякої нової інформації, як new Date().getFullYear()це вже зазначено у прийнятій відповіді.
leonheess

2
1.) Погана практика говорить вам, але інші не згодні, оскільки це дійсний ванільний Javascript; 2.) Моя відповідь надає нову інформацію про те, як реалізувати це на сторінці HTML, а не лише console.log ().
Єрусалимський програміст

2
"Добре" є суб'єктивним. Існує більше одного способу шкіри шкіри кішки, і більш ніж один спосіб вирішити проблеми кодування. Якщо рішення просте і діє, то чому, на вашу скромну думку, це не «добре»?
Єрусалимський програміст

1
Ну, сер, зрозуміло, що це не чітко визначений об'єктивний стандарт (і справді це відкрита дискусія), оскільки є багато хто з вами не згоден: stackoverflow.com/questions/802854/… ... а також тут : stackoverflow.com/questions/18789190/why-not-document-write Тому ваше маркування моєї репутації щодо вашої суб'єктивної думки не дуже приємне, оскільки є інші, хто не погодиться з вами. Запам’ятайте головний момент тут, і що я лише запропонував простий спосіб надрукувати це в HTML-файл замість console.log ().
Єрусалимський програміст

1
Перегляньте попередні два посилання, де ви можете побачити СТОРІН людей, які не погоджуються з вами. Є також СТОЛИЦІ людей, які погоджуються з вами, тому це не чітке питання. Ви наполягаєте на своєму шляху або на високому шляху досить закрито, оскільки ви не можете бути впевнені, чи хтось може вирішити, що document.write () є найкращим рішенням для його / її потреб.
Єрусалимський програміст

4

в поточному році ми можемо використовувати getFullYear () з класу Date, проте є багато функцій, які можна використовувати відповідно до вимог, деякі функції є,

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

Візьмемо цей приклад, ви можете розмістити його там, де ви хочете його показати, не звертаючись до сценарію у нижньому колонтитулі чи десь ще, як інші відповіді

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

Примітка авторського права на колонтитулі як приклад

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

Це непотрібна відповідь.
Crocsx

@crocsx ви можете додати цей код у свій HTML у тому місці, де ви хочете його показати, не звертаючись до сценарію у нижньому колонтитулі чи десь ще, як і всі інші відповіді
Majali

те саме, що відповідь єрусалимського програміста трохи інша
Crocsx

@Crocsx ця відповідь чистіша, не включає елементи HTML та класи CSS, які передбачають, що ви використовуєте bootstrap, це лише один рядок, правда?
Махалі

питання полягає лише в тому, щоб отримати рік в JS, а не отримати рік і помістити його в колонтитул. І в такому випадку ви могли б відредагувати іншу відповідь. У всякому разі ...
Crocsx

1

Ви можете просто використовувати javascript, як це. Інакше ви можете використовувати Plugin momentJs, який допомагає у великих програмах.

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

Більшість знайдених тут відповідей є правильними лише у тому випадку, якщо вам потрібен поточний рік на основі часового поясу та зсуву вашої локальної машини (сторона клієнта) - джерело, яке в більшості сценаріїв не може вважатися надійним (бо він може відрізнятися від машини до машини) .

Надійними джерелами є:

  • Годинник веб-сервера (але переконайтеся, що він оновлений)
  • API часу та CDN

Деталі

Метод, викликаний Dateекземпляром, поверне значення на основі локального часу вашої машини.

Більш детальну інформацію можна знайти в "Веб-документах MDN": Об'єкт дати JavaScript .

Для вашої зручності я додав відповідну примітку з їхніх документів:

(...) основні методи отримання дати та часу або його компоненти працюють у локальному (тобто хост-системі) часовому поясі та зміщенні.

Ще одне джерело, що згадує про це: об’єкт дати та часу JavaScript

важливо зауважити, що якщо чийсь годинник вимкнений на кілька годин або він перебуває в іншому часовому поясі, то об’єкт Date створить інші часи від тих, що створені на вашому власному комп’ютері.

Деякі надійні джерела, якими ви можете скористатися:

Але якщо вас просто не хвилює точність часу, або якщо ваш випадок використання вимагає значення часу щодо часу локальної машини, тоді ви можете сміливо використовувати Dateосновні методи Javascript, наприклад Date.now(), або new Date().getFullYear()(для поточного року).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.