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

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