当前位置: 首页 > 图文教程 > 网络编程 > Javascript > jQuery 各种浏览器下获得日期区别

Javascript
非常不错的 子鼠 滑动图片效果 Javascript+CSS
Mozilla 表达式 __noSuchMethod__
javascript 获取图片颜色
JavaScript 在各个浏览器中执行的耐性
在JavaScript中,为什么要尽可能使用局部变量?
javascript 日历提醒系统( 兼容所有浏览器 )
常用JS代码实例小结
jQuery 插件 将this下的div轮番显示
网页特效从下往上过渡 共享图库_最新图片
由document.body和document.documentElement想到的
JavaScript获取GridView中用户点击控件的行号,列号
jQuery 入门讲解1
百度 popup.js 完美修正版非常的不错
jQuery autocomplete插件修改
jQuery对象和DOM对象相互转化
javascript 人物逼真行走,已完成
基于jQuery图片平滑连续滚动插件
ie 调试javascript的工具
ExtJS 2.0实用简明教程 之Border区域布局
ExtJS 2.0实用简明教程 之Ext类库简介

Javascript 中的 jQuery 各种浏览器下获得日期区别


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

在系统开发过程中经常会用到系统的当前时间,然而我们遇到的问题确又是各个浏览器返回值不同,就像典型的IE和FF浏览器。 如果在IE下执行:
复制代码 代码如下:

var currentDate = new Date();
alert(currentDate.getYear());

会弹出2008,但是在FF下就是108,这是为什么呢?
首先了解一下“格林威治标准时 (GMT)”时间,它是从1900年开始,我们来看一下这个运算表达式:108 + 1900 = 2008
原因是FF没有加上1900这个年份,然后代码如下:
复制代码 代码如下:

/**
* 获得当前的日期
*
* @return {}
*/
function getCurrentDate() {
var userAgent = navigator.userAgent.toLowerCase();
// 因IE的年为2008和FF为108,判断
var currentYear = currentDate.getYear();
if ($.browser.mozilla) {
currentYear += 1900;
}
var currentDateStr = currentYear + '-' + (currentDate.getMonth() + 1) + '-' + currentDate.getDate();
return currentDateStr;
};

问题解决了,测试成功
后来又在GOOGLE浏览器chrome下运行系统竟然也遇到了同样的问题……
大家看看这个判断:
if ($.browser.mozilla)
这里判断是否为FF浏览器,上面的代码已经通过测试,那么GOOGLE浏览器怎么办呢?
同样我也做了一个判断:
var userAgent = navigator.userAgent.toLowerCase();
var chrome = /chrome/.test(userAgent);
这里套用jQuery的浏览器判断方法,用正则表达式获得浏览器的一系列参数,然后查询有没有chrome字符串,有就是GOOGLE的浏览器,所以最后的代码就是:
复制代码 代码如下:

/**
* 获得当前的日期
*
* @return {}
*/
function getCurrentDate() {
var userAgent = navigator.userAgent.toLowerCase();
//判断是否为google的浏览器
var chrome = /chrome/.test(userAgent);
var currentDate = new Date();
// 因IE的年为2008和FF为108,判断
var currentYear = currentDate.getYear();
if ($.browser.mozilla || chrome) {
currentYear += 1900;
}
var currentDateStr = currentYear + '-' + (currentDate.getMonth() + 1) + '-'
+ currentDate.getDate();
return currentDateStr;
};

其他浏览器按照逻辑推就可以了
最后还有一点要注意的就是获得月份的方法:currentDate.getMonth() + 1,因为日期在最初设计的时候是从0开始的,所以我们要把获得月份加一。