jQuery 各種瀏覽器下獲得日期區(qū)別
更新時(shí)間:2008年12月22日 01:08:53 作者:
在系統(tǒng)開發(fā)過程中經(jīng)常會(huì)用到系統(tǒng)的當(dāng)前時(shí)間,然而我們遇到的問題確又是各個(gè)瀏覽器返回值不同,就像典型的IE和FF瀏覽器。
如果在IE下執(zhí)行:
var currentDate = new Date();
alert(currentDate.getYear());
會(huì)彈出2008,但是在FF下就是108,這是為什么呢?
首先了解一下“格林威治標(biāo)準(zhǔn)時(shí) (GMT)”時(shí)間,它是從1900年開始,我們來看一下這個(gè)運(yùn)算表達(dá)式:108 + 1900 = 2008
原因是FF沒有加上1900這個(gè)年份,然后代碼如下:
/**
* 獲得當(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;
};
問題解決了,測(cè)試成功
后來又在GOOGLE瀏覽器chrome下運(yùn)行系統(tǒng)竟然也遇到了同樣的問題……
大家看看這個(gè)判斷:
if ($.browser.mozilla)
這里判斷是否為FF瀏覽器,上面的代碼已經(jīng)通過測(cè)試,那么GOOGLE瀏覽器怎么辦呢?
同樣我也做了一個(gè)判斷:
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;
};
其他瀏覽器按照邏輯推就可以了
最后還有一點(diǎn)要注意的就是獲得月份的方法:currentDate.getMonth() + 1,因?yàn)槿掌谠谧畛踉O(shè)計(jì)的時(shí)候是從0開始的,所以我們要把獲得月份加一。
復(fù)制代碼 代碼如下:
var currentDate = new Date();
alert(currentDate.getYear());
會(huì)彈出2008,但是在FF下就是108,這是為什么呢?
首先了解一下“格林威治標(biāo)準(zhǔn)時(shí) (GMT)”時(shí)間,它是從1900年開始,我們來看一下這個(gè)運(yùn)算表達(dá)式:108 + 1900 = 2008
原因是FF沒有加上1900這個(gè)年份,然后代碼如下:
復(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;
};
問題解決了,測(cè)試成功
后來又在GOOGLE瀏覽器chrome下運(yùn)行系統(tǒng)竟然也遇到了同樣的問題……
大家看看這個(gè)判斷:
if ($.browser.mozilla)
這里判斷是否為FF瀏覽器,上面的代碼已經(jīng)通過測(cè)試,那么GOOGLE瀏覽器怎么辦呢?
同樣我也做了一個(gè)判斷:
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;
};
其他瀏覽器按照邏輯推就可以了
最后還有一點(diǎn)要注意的就是獲得月份的方法:currentDate.getMonth() + 1,因?yàn)槿掌谠谧畛踉O(shè)計(jì)的時(shí)候是從0開始的,所以我們要把獲得月份加一。
您可能感興趣的文章:
相關(guān)文章
jQuery的Ajax的自動(dòng)完成功能控件簡(jiǎn)要說明
jQuery的Ajax的自動(dòng)完成功能 允許您輕松地創(chuàng)建自動(dòng)完成/自動(dòng)提示框的文本輸入字段;如果沒有特定查詢的結(jié)果,它停止發(fā)送請(qǐng)求到服務(wù)器的其他查詢感興趣的朋友可以參考下啊2013-02-02使用jQuery如何寫一個(gè)含驗(yàn)證碼的登錄界面
這篇文章主要介紹了如何寫一個(gè)含驗(yàn)證碼的登錄界面,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05jquery查找父元素、子元素(個(gè)人經(jīng)驗(yàn)總結(jié))
對(duì)使用js或者jquery查找父元素、子元素比較混淆的朋友可以參考下本文,因?yàn)槭莻€(gè)人總結(jié),用起來會(huì)比較方便2014-04-04對(duì)jquery的ajax進(jìn)行二次封裝以及ajax緩存代理組件:AjaxCache詳解
下面小編就為大家?guī)硪黄獙?duì)jquery的ajax進(jìn)行二次封裝以及ajax緩存代理組件:AjaxCache詳解。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-04-04jquery插件制作 提示框插件實(shí)現(xiàn)代碼
今天我們介紹的是提示框插件tooltip的制作,其中還會(huì)介紹到自定義選擇器插件的開發(fā)2012-08-08jQuery基于ajax實(shí)現(xiàn)星星評(píng)論代碼
這篇文章主要介紹了jQuery基于ajax實(shí)現(xiàn)星星評(píng)論代碼,可實(shí)現(xiàn)實(shí)時(shí)顯示評(píng)論效果的功能,基于Ajax實(shí)現(xiàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08Jquery插件實(shí)現(xiàn)點(diǎn)擊獲取驗(yàn)證碼后60秒內(nèi)禁止重新獲取
這篇文章主要介紹了Jquery插件實(shí)現(xiàn)點(diǎn)擊獲取驗(yàn)證碼后60秒內(nèi)禁止重新獲取,十分常用的功能,這里分享給大家,有需要的小伙伴參考下吧。2015-03-03