使用JavaScript获取当前年份


973

如何获得JavaScript的当前年份?


10
令人惊讶的是,如果真的没有重复的记录。是接近的,但不确切。
TJ Crowder

5
获取参考,这是一个简单的查询Date对象
epascarello 2011年

2
请注意,地球上每个人的“当前”年份不一定都相同。必须考虑时区。此处的大多数答案都给出了用户所在本地时区的当前年份(假设代码正在Web浏览器中运行)。
马特·约翰逊

Answers:


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/...
user456584

要根据通用时间获得年份,请使用getUTCFullYear()
Courtney Pattison

2
上面的页脚示例如果更仅仅是更清楚:<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
使用getFullYear()代替getYear()。见stackoverflow.com/questions/16296897/...
罗兰

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

对于当前年份,我们可以使用Date类中的getFullYear(),但是您可以根据需要使用很多功能,有些功能如下:

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类,只有一行,对吗?
Majali

问题是只用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

当您需要基于本地计算机的时区和偏移量(客户端)的当前年份时,此处找到的大多数答案才是正确的-在大多数情况下,该来源在很多情况下都不能被认为是可靠的(因为它可能因计算机而异) 。

可靠的来源是:

  • Web服务器的时钟(但请确保已更新)
  • 时间API和CDN

细节

Date实例上调用的方法将根据您的计算机的本地时间返回一个值。

可以在“ MDN Web文档”中找到更多详细信息:JavaScript Date对象

为了方便起见,我在他们的文档中添加了相关说明:

(...)获取日期和时间或其组成部分的基本方法都在本地(即主机系统)时区和偏移量下工作。

另一个提到这一点的来源是:JavaScript日期和时间对象

重要的是要注意,如果某人的时钟关闭了几个小时或处于不同的时区,那么Date对象将创建与您自己的计算机上创建的时间不同的时间。

您可以使用一些可靠的资源:

但是,如果您根本不关心时间准确性,或者用例需要相对于本地计算机时间的时间值,则可以安全地使用Javascript的Date基本方法,例如Date.now()new Date().getFullYear()(针对当前年份)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.