当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript教程:网页时间问题

Javascript
非常厉害的javascript 实现指针式时间
文档处理系列——随时更新
用javascript实现文本框和"选择"按扭之间的间距
使用户点击后退按钮使效三行代码
Javascript 个人笔记(没有整理,很乱)
建议大家看下JavaScript重要知识更新
javascript实现操作cookie实现的可记忆菜单
javascript下for循环用法小结
一个快速添加标签的小玩意,但在FF下不能用,望高手指点
HTML中事件触发列表与解说
极品源码:自动完成 仿163篇
doctype后如何获得body.clientHeight的方法
用javascript调出windows色版的代码
js实现的网页颜色代码表全集
javascript实现爱你在FF IE下都有效的添加一个项目
js实现用滚动条来放大缩小图片的代码
javascript实现unicode和字符的互相转换
符合W3C网页标准的iframe标签的使用方法
firefox下javascript实现高亮关键词的方法
用javascript实现读取txt文档的脚本

Javascript 中的 JavaScript教程:网页时间问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 437 ::
收藏到网摘: n/a

    在浏览几个网页时,发现有几个网站在显示时间时存在问题,比如今天是2009年1月4日,但是有的网站上却赫然写着今天是109年1月4日(这里有个例子就是中国银行的网站首页)。这是一个奇怪的问题,可看这些网站的代码,大致如下:

  1. var today;   
  2. today = new Date();   
  3. document.write(today.getYear());  

从上面的代码来看并不存在任何问题!但是当我们运行这段代码时却发现,在不同的浏览器中返回的结果并不同:在Internet Explorer中返回的是2009,在Firefox、Chrome等浏览器中返回的是109。由于目前使用Internet Explorer的用户依然占居绝对多数,因为这个问题很难被发现。不过这足以说明IE和其它浏览器对于getYear()的解释并不一致(这也是Internet Explorer的一贯作风),但是问题究竟出现在哪里呢?是浏览器本身的问题还是Javascript出现了问题呢?我们姑且不去讨论这个,我们先来看看getYear()的具体作用:

在非Internet Explorer浏览器中,getYear()函数返回的是1900到1999间的两位十进制数字,比如1999年,返回是99,这和实际年份正好相同;但是如果年份走出了1999,那么就会一个3位的十进制数字,比如2000年,返回的就是100(99+1),2009返回的就是109(99+10);

如何解决这个问题?

很简单,使用getFullYear()这个函数。

在所有的浏览器中,getFullYear()返回的一个四位数的十进制数字。

因此,如果时间不超过9999年,那么就会一直有效。

getYear()和getFullYear()的区别

几点建议:

  1. 使用多个浏览器测试你的网站。这一点已经不用多说了,这里指的多个浏览器不仅仅是不同类别的浏览器,更包括了浏览器的不同版本;
  2. 获得时间使用服务器端还是客户端。在多数情况下,我建议直接在服务器端获得时间然后再输送到用户浏览器,这样不会因为用户机器时间设置不同而出现问题。但是这也存在一个问题,那就是不同时区内的访问者可能看到的是同一个时间。如果你的网站访问者人群相对固定,那么建议直接在服务器端直接获得时间(这不会浪费太多的解析时间)。