如果在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 公用拖拽类代码
D类
html, body {
margin:0;
}
拽
拽
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]>>>详细阅读
本文标题:jQuery 各种浏览器下获得日期区别
地址:http://www.17bianji.com/kaifa2/JS/29117.html
1/2 1