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

Javascript
JavaScript DOM学习第八章 表单错误提示
JavaScript DOM 学习第九章 选取范围的介绍
JavaScript CSS修改学习第一章 查找位置
JavaScript CSS修改学习第二章 样式
JavaScript CSS修改学习第三章 修改样式表
JavaScript CSS 修改学习第四章 透明度设置
JavaScript CSS修改学习第五章 给“上传”添加样式
JavaScript CSS修改学习第六章 拖拽
Jquery乱码的一次解决过程 图解教程
javascript 包裹节点 提高效率
javascript inneHTML的地雷
javascript 定义新对象方法
判定对象是否为window的js代码
jquery validator 插件增加日期比较方法
jquery 得到当前页面高度和宽度的两个函数
JavaScript 编写匿名函数的几种方法
jQuery 操作下拉列表框实现代码
jQuery入门问答 整理的几个常见的初学者问题
第一个JavaScript入门基础 document.write输出
javascript入门基础之私有变量

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 263 ::
收藏到网摘: 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. 获得时间使用服务器端还是客户端。在多数情况下,我建议直接在服务器端获得时间然后再输送到用户浏览器,这样不会因为用户机器时间设置不同而出现问题。但是这也存在一个问题,那就是不同时区内的访问者可能看到的是同一个时间。如果你的网站访问者人群相对固定,那么建议直接在服务器端直接获得时间(这不会浪费太多的解析时间)。