Получить текущий год в JavaScript


975

Как мне получить текущий год в JavaScript?


10
Удивительно, если для этого действительно нет дубликата. Этот близок, но не точен.
TJ Crowder

5
Получить себе ссылку, это простой поиск Дата Объект
epascarello

2
Обратите внимание, что «текущий» год не обязательно одинаков для всех на планете одновременно. Нужно учитывать часовой пояс. Большинство ответов здесь дают текущий год в местном часовом поясе пользователя (при условии, что код работает в веб-браузере).
Мэтт Джонсон-

Ответы:


1762

Создать 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/...
user456584

Чтобы получить год по всемирному времени, используйте 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)


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-страницу выглядит следующим образом:

Авторское право © 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 в том месте , вы хотите , чтобы показать это , не обращаясь к сценарию в футере или где -то еще , как и все другие ответы
Маджали

такой же, как и ответ иерусалимского программиста, немного другой
Crocsx

@Crocsx этот ответ чище, не включает HTML-элемент и CSS-классы, которые предполагают, что вы используете загрузчик, это всего одна строка, верно?
Маджали

вопрос просто получить год в JS, а не получить год и поместить его в нижний колонтитул. И в этом случае вы могли бы отредактировать другой ответ. Во всяком случае ...
Crocsx

1

Вы можете просто использовать JavaScript, как это. В противном случае вы можете использовать плагин 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 web docs»: объект JavaScript Date .

Для вашего удобства я добавил соответствующую заметку из их документов:

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

Другой источник, упоминающий это: JavaScript объект даты и времени

важно отметить, что если у кого-то часы выключены на несколько часов или они находятся в другом часовом поясе, то объект Date будет создавать время, отличное от того, которое было создано на вашем компьютере.

Некоторые надежные источники, которые вы можете использовать:

Но если вы просто не заботитесь о точности времени или если ваш сценарий использования требует значения времени относительно времени локальной машины, тогда вы можете безопасно использовать Dateбазовые методы Javascript, такие как Date.now(), или new Date().getFullYear()(для текущего года).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.