JS中使用getYear方法显示年份错误的解决方法

有些网站在页面上放了一个JS显示时间,当使用到getYear获取年份的时候,部分浏览器就会显示出错,如正常应该显示2014年的,则显示成了114年。为什么会出现这个情况呢?到底是哪些浏览器出现的情况?

通过检测发现,IE6-IE8都是正常的,IE9及以上的版本就不正常了。

当然,Firefox,Chrome是肯定无法正常显示的!

JS中使用getYear方法显示年份错误的解决方法

到底有什么解决办法呢?其实解决方案都很简单,就是修改获取年份getYear的方法,下面提供两种修改方法:

如原来的获取年份的方法是:var years = d.getYear();

一、修改为var years = (d.getYear() < 1900) ? (1900 + d.getYear()) : d.getYear();

为什么这么修改呢?因为IE9和FF、Chrome的getYear()返回的是“当前年份-1900”的值,而IE9以下版本却当年份大于等于2000的时,直接将1900加上了,返回2014。

二、修改为var years = d.getFullYear();

是不是更简单更直接呢?其实墙裂的建议大家以后写JS获取年份的时候,都使用getFullYear。

下面可以看个案例:【查看demo

查看 JavaScript js getfullyear的相关文章

转载本站原创文章请注明:文章转自 灰狼IT路,链接: https://itlu.org/articles/2036.html

已有 15 条评论

  1. 一直用的是getFullYear

    1. 直到今天,我仍能发现有些网站还在使用getYear。。。

  2. 嘿嘿学到了,给大家分享个好消息。刚刚我在一个站上看到2014-8-14上午9:00在 http://www.jiawin.com/henghostt-t-building/这里好像可以免费获得VPS、独立IP主机等礼品

    1. 到处都有你、

      1. 我也觉得是。

  3. 前來支持一下~~學習啦!
    PS:歡迎訪問AREFLY.COM~~

    1. 嗯,博客内容不错,就是感觉排版有点小乱

  4. 涨姿势了

  5. 一直在使用JS,倒还没见到过这种情况。

    1. 可能是写过这一块的?

    2. 你连个正确的邮箱都不敢留,表示。。。

  6. 你这页面加载有如龟速啊。哪儿的主机?

    1. 极有可能是百度联盟的代码拖慢速度,图片在又拍,部分静态文件在七牛,这些理论上不应该慢的。

  7. 菜鸟看看。学习一下
    www.38hzt.com

添加新评论