File:JavaScript getYear Method Problem.png

JavaScript_getYear_Method_Problem.png (326 × 190像素,文件大小:6 KB,MIME类型:image/png


摘要

描述
English: Webpage screenshots showing the JavaScript .getYear method problem. It depicts the so-called Year 2000 problem.

The results of the .getYear method are different with Internet Explorer 6-8 and the other modern browsers:

  • IE3, IE9+, other modern browsers: .getYear always returns a 2-digit value that is the stored year minus 1900).
  • IE4-8, other modern browsers:
    • .getYear returns a 2-digit value that is the stored year minus 1900) for the years 1900 through 1999;
    • it returns the 4-digit full year for dates outside that range.

.getYear is now obsoleted, but supported for backward compatibility by all modern browsers.

.getFullYear is not supported before IE6. With those that support it, the 4-digit full year is always returned. This method is currently recommended.

HTML and JavaScript code (by Tomchen1989 under CC0 1.0)
<!DOCTYPE html>
<html lang="en">
<head>
<title>JavaScript .getYear Method Problem</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<style>
table{border-collapse:collapse;}
th,td{border:1px solid #000;}
</style>
</head>
<body>
<table>
<tr>
	<th>Real year</th>
	<th>1858</th><th>1990</th><th>1994</th><th>2000</th><th>2007</th>
</tr>
<tr>
	<th>.getYear() result</th>
	<td id="getyear1"></td><td id="getyear2"></td><td id="getyear3"></td><td id="getyear4"></td><td id="getyear5"></td>
</tr>
<tr>
	<th>.getFullYear() result</th>
	<td id="getfullyear1"></td><td id="getfullyear2"></td><td id="getfullyear3"></td><td id="getfullyear4"></td><td id="getfullyear5"></td>
</tr>
</table>
<script>
var dates = [new Date("1858, 1, 1"), new Date("1990, 1, 1"), new Date("1994, 1, 1"), new Date("2000, 1, 1"), new Date("2007, 1, 1")];
for (var i = 0; i < dates.length; i++) {
	document.getElementById("getyear" + (i+1)).innerHTML = dates[i].getYear();
	document.getElementById("getfullyear" + (i+1)).innerHTML = dates[i].getFullYear();
}
</script>
</body>
</html>

BTW, if you want to return a 2-digit year value (only for AD, 3, 203, 1803, 1903 and 2003 all return "03", that are the last two digits) in modern browsers, you may try:

("0"+dateObj.getFullYear().toString()).slice(-2);

References:

日期
来源 自己的作品
作者 Tomchen1989

许可协议

我,本作品著作权人,特此采用以下许可协议发表本作品:
Creative Commons CC-Zero 本作品采用知识共享CC0 1.0 通用公有领域贡献许可协议授权。
采用本宣告发表本作品的人,已在法律允许的范围内,通过在全世界放弃其对本作品拥有的著作权法规定的所有权利(包括所有相关权利),将本作品贡献至公有领域。您可以复制、修改、传播和表演本作品,将其用于商业目的,无需要求授权。

说明

添加一行文字以描述该文件所表现的内容
显示 JavaScript .getYear 方法问题的网页屏幕截图。 它描述了所谓的 2000 年问题。 .getYear 方法的结果与 Internet Explorer 6-8 和其他现代浏览器不同:IE3、IE9+、其他现代浏览器:.getYear 始终返回一个 2 位数的值,即存储的年份减去 1900)。 IE4-8,其他现代浏览器:.getYear 返回 1900 年到 1999 年的 2 位数字值,即存储的年份减去 1900); 对于该范围之外的日期,它返回 4 位数的全年。

此文件中描述的项目

描绘内容

文件来源 简体中文(已转写)

上传者的原创作品 简体中文(已转写)

文件历史

点击某个日期/时间查看对应时刻的文件。

日期/时间缩⁠略⁠图大小用户备注
当前2014年5月2日 (五) 18:292014年5月2日 (五) 18:29版本的缩略图326 × 190(6 KB)Tomchen1989User created page with UploadWizard

以下页面使用本文件:

全域文件用途

以下其他wiki使用此文件:

元数据