jQuery 各种浏览器下获得日期区别
jQuery 各种浏览器下获得日期区别
发布时间:2016-12-30 来源:查字典编辑
摘要:如果在IE下执行:复制代码代码如下:varcurrentDate=newDate();alert(currentDate.getYear()...

如果在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开始的,所以我们要把获得月份加一。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类