之前用layui做的一專案中,table中用到了日期格式化的問題。直接沒多想,擼**就完了唄,結果最近一段時間客戶反饋說顯示日期跟錄入日期不一樣(顯示日期比錄入日期多8個小時)。
當時腦子裡想的就是:「握草,這怎麼可能」。然後就溝通駐場同事排查問題。
當時的腦迴路是這樣的:
1、差8個小時——時區不對?
2、電腦設定有問題?
3、**有問題?
經過排查,只有乙個片區的使用者有反饋日期顯示不正確。
然後就開始排查瀏覽器,用的數字安全瀏覽器急速模式,那就是chrome核心啊,然後就從本地再測,神奇的一幕又發生了,我本地是沒問題的,然以後讓現場同事測試,也是沒問題的。但是就是使用者電腦上不行。
於是開啟了問題解決之路:調整**!
原來**是這樣的:
經過除錯發現,這個**在mozilla firefox跟chrome中是沒問題的。但是在ie以及部分低版本的chrome中是存在問題的。
根據上面的**,在不相容的情況下,出問題的**就是這一句:
好了,知道問題所在,開始動刀
傳入的時間格式時這樣的:2019-03-07t12:23:45,經過查閱資料才知道,
new date(「2019-03-07t12:23:45」);是存在相容性問題的。
相容結果彙總如下:
1、無參:所以瀏覽器都相容
2、有參:
1) 引數格式一日期「yyyy-mm-dd」:
ie> ie9-(不相容)
> ie9+(相容,包含ie9)
mozilla firefox(相容)
chrome(相容)
2)引數格式二
日期時間「yyyy-mm-dd hh:mm:ss」:
ie (不相容,不管哪個版本)
mozilla firefox(不相容)
chrome(相容)
日期時間「yyyy/mm/dd hh:mm:ss」
ie9+ (相容)
mozilla firefox(相容)
chrome(相容)
於是乎**就改成這樣子:
懶人看這:
//格式化時間 yyyy-mm-dd hh:mm:ss最後貼個封裝的js日期格式化函式:function formatdatetime(v)
if(typeof v === 'string' && (v.indexof('t') > -1||v.includes('t'))) ;
var date = new date(v);
var y = date.getfullyear();
var m = date.getmonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getdate();
d = d < 10 ? ("0" + d) : d;
var h = date.gethours();
h = h < 10 ? ("0" + h) : h;
var m = date.getminutes();
m = m < 10 ? ("0" + m) : m;
var str = y + "-" + m + "-" + d + " " + h + ":" + m;
return str;
}
/*** 時間戳格式化函式
* @param format 格式
* @param timestamp 要格式化的時間 預設為當前時間
* @return 格式化的時間字串
*/function date(format, timestamp) else
}; var txt_weekdays = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
var txt_ordin = ;
var txt_months = ["", "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];
var f = ,
d: function(),
j: function(),
l: function(),
n: function(),
s: function(),
w: function(),
z: function(),
// week
w: function() else else
} },
// month
f: function(),
m: function(),
m: function(),
n: function(),
t: function() else else
} },
// year
l: function(),
//o not supported yet
y: function(),
y: function(),
// time
a: function(),
a: function(),
b: function(),
g: function(),
g: function(),
h: function(),
h: function(),
i: function(),
s: function(),
//u not supported yet
// timezone
//e not supported yet
//i not supported yet
o: function(),
p: function(),
//t not supported yet
//z not supported yet
// full date/time
c: function(),
//r not supported yet
u: function()
}; return format.replace(/[\]?([a-za-z])/g, function(t, s) else if( f[s] ) else
return ret;
});
}
瀏覽器相容問題
我經常看到一些人提問說網頁錯位,和在火狐裡面看上去網頁是好的,在ie在錯位了.在web 下html css裡全看一些關於這些問題.還有有ul li什麼調整不好的.等等 全可以用css hack 解決的.解決方法 用positon relative 然後 top 0px left 0px 上面的top...
瀏覽器相容問題
給近兩天的工作乙個總結,給這週劃上句號。工作中遇到了在google顯示的很好的介面,在ie顯示的不是很好,但還能看,僅僅是顏色和和位置錯位,在360瀏覽器下看就是真的錯誤太大了,不顯示,樣式也亂了,於是走上解決瀏覽器相容之路。思路1 對應每個瀏覽器寫個css,判斷之,工作量太大,放棄。思路2 針對每...
瀏覽器相容問題
所謂的瀏覽器相容性問題,是指因為不同的瀏覽器對同 段 有不同的解析,造成 顯 效果不統 的情況。在 多 數情況下,我們的需求是,論 戶 什麼瀏覽器來檢視我們的 站或者登陸我們的系統,都應該是統 的顯 效果。所 以瀏覽器的相容性問題是前端開發 員經常會碰到和必須要解決的問題。在學習瀏覽器相容性之前,我...