|
復(fù)制代碼 代碼如下:
var currentDate = new Date();
alert(currentDate.getYear());
會彈出2008,但是在FF下就是108,這是為什么呢?
首先了解一下“格林威治標(biāo)準(zhǔn)時 (GMT)”時間,它是從1900年開始,我們來看一下這個運算表達式: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的瀏覽器判斷方法,用正則表達式獲得瀏覽器的一系列參數(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開始的,所以我們要把獲得月份加一。
JavaScript技術(shù):jQuery 各種瀏覽器下獲得日期區(qū)別,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。