jQuery 各種瀏覽器下獲得日期區(qū)別
更新時間:2008年12月22日 01:08:53 作者:
在系統(tǒng)開發(fā)過程中經(jīng)常會用到系統(tǒng)的當(dāng)前時間,然而我們遇到的問題確又是各個瀏覽器返回值不同,就像典型的IE和FF瀏覽器。
如果在IE下執(zhí)行:
var currentDate = new Date();
alert(currentDate.getYear());
會彈出2008,但是在FF下就是108,這是為什么呢?
首先了解一下“格林威治標(biāo)準(zhǔn)時 (GMT)”時間,它是從1900年開始,我們來看一下這個運算表達(dá)式:108 + 1900 = 2008
原因是FF沒有加上1900這個年份,然后代碼如下:
/**
* 獲得當(dāng)前的日期
*
* @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下運行系統(tǒng)竟然也遇到了同樣的問題……
大家看看這個判斷:
if ($.browser.mozilla)
這里判斷是否為FF瀏覽器,上面的代碼已經(jīng)通過測試,那么GOOGLE瀏覽器怎么辦呢?
同樣我也做了一個判斷:
var userAgent = navigator.userAgent.toLowerCase();
var chrome = /chrome/.test(userAgent);
這里套用jQuery的瀏覽器判斷方法,用正則表達(dá)式獲得瀏覽器的一系列參數(shù),然后查詢有沒有chrome字符串,有就是GOOGLE的瀏覽器,所以最后的代碼就是:
/**
* 獲得當(dāng)前的日期
*
* @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,因為日期在最初設(shè)計的時候是從0開始的,所以我們要把獲得月份加一。
復(fù)制代碼 代碼如下:
var currentDate = new Date();
alert(currentDate.getYear());
會彈出2008,但是在FF下就是108,這是為什么呢?
首先了解一下“格林威治標(biāo)準(zhǔn)時 (GMT)”時間,它是從1900年開始,我們來看一下這個運算表達(dá)式:108 + 1900 = 2008
原因是FF沒有加上1900這個年份,然后代碼如下:
復(fù)制代碼 代碼如下:
/**
* 獲得當(dāng)前的日期
*
* @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下運行系統(tǒng)竟然也遇到了同樣的問題……
大家看看這個判斷:
if ($.browser.mozilla)
這里判斷是否為FF瀏覽器,上面的代碼已經(jīng)通過測試,那么GOOGLE瀏覽器怎么辦呢?
同樣我也做了一個判斷:
var userAgent = navigator.userAgent.toLowerCase();
var chrome = /chrome/.test(userAgent);
這里套用jQuery的瀏覽器判斷方法,用正則表達(dá)式獲得瀏覽器的一系列參數(shù),然后查詢有沒有chrome字符串,有就是GOOGLE的瀏覽器,所以最后的代碼就是:
復(fù)制代碼 代碼如下:
/**
* 獲得當(dāng)前的日期
*
* @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,因為日期在最初設(shè)計的時候是從0開始的,所以我們要把獲得月份加一。
相關(guān)文章
jquery查找父元素、子元素(個人經(jīng)驗總結(jié))
對使用js或者jquery查找父元素、子元素比較混淆的朋友可以參考下本文,因為是個人總結(jié),用起來會比較方便2014-04-04對jquery的ajax進(jìn)行二次封裝以及ajax緩存代理組件:AjaxCache詳解
下面小編就為大家?guī)硪黄獙query的ajax進(jìn)行二次封裝以及ajax緩存代理組件:AjaxCache詳解。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-04-04Jquery插件實現(xiàn)點擊獲取驗證碼后60秒內(nèi)禁止重新獲取
這篇文章主要介紹了Jquery插件實現(xiàn)點擊獲取驗證碼后60秒內(nèi)禁止重新獲取,十分常用的功能,這里分享給大家,有需要的小伙伴參考下吧。2015-03-03