日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Extjs日期格式问题

發布時間:2024/9/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Extjs日期格式问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一般我們的前臺代碼Ext.grid.ColumnModel里會這樣寫,以便顯示日期格式:
Js代碼
1.....??
2.{header:"birthday",dataIndex:"birthday".......renderer:new Ext.util.Format.dateRenderer("Y-m-d"),??
3.....?
....
{header:"birthday",dataIndex:"birthday".......renderer:new Ext.util.Format.dateRenderer("Y-m-d"),
....
如果你前臺這樣寫的話,那恭喜你,你的顯示日期那列將不再正確顯示時間,而是顯示為"NaN-NaN-NaN",是吧?呵呵,問我怎么知道的?因為最開始我也是這么錯的。 為什么會是錯的呢?讓我們來看看Ext.format.dateRenderer的源代碼(開源的東西就是好),它的源代碼是這樣的:
Js代碼
1.dateRenderer : function(format) {??
2.??? return function(v) {??
3.??????? return Ext.util.Format.date(v, format);、??
4.??? }??
5.}?
dateRenderer : function(format) {
return function(v) {
return Ext.util.Format.date(v, format);、
}
} 可以看出,我們傳會來的值,被當做日期又被格式化了一次,我們傳回來的是日期嗎?以前是,經過昨天后臺代碼的修改,我們傳回來的僅僅是個字符串了,至于為什么要這么改,請看昨天寫的“Extjs日期格式問題(一) ”,那咋辦?有的朋友應該已經想到了,既然是字符串,那就直接顯示唄,不用renderer了,于是前臺代碼Ext.grid.ColumnModel里就變成了:
Js代碼
1.....??
2.{header:"birthday",dataIndex:"birthday".......),??
3.....?
....
{header:"birthday",dataIndex:"birthday".......),
....可以負責任的告訴你,這樣寫,絕對可以正確顯示了,這樣是不是感覺更簡單了呢?
但是,基于我項目里的要求,這個問題并沒有解決完,因為在這里不是一個簡單的gridpanel,而是一個editgridpanel,所以還得定義一個editor,于是有了下面這樣一段代碼:
Js代碼
1.....??
2.{header:"birthday",dataIndex:"birthday".......,??
3.????? editor:new Ext.grid.GridEditor(new Ext.form.DateField({format:"Y-m-d"})),??
4.....?
....
{header:"birthday",dataIndex:"birthday".......,
????? editor:new Ext.grid.GridEditor(new Ext.form.DateField({format:"Y-m-d"})),
....加了這個DateField控件后,每次可以正常的選擇日期,但是選擇完日期后,grid里顯示的格式就又不正確了,這次顯示的內容成了: "Wed Mar 04 1970......",這樣的格式一看就是個日期,這樣顯示的原因當然是因為我們沒有寫renderer進行格式化處理的緣故。。。
說到這里,有人應該已經想到解決辦法了,另外有些人可能就抓狂了,這renderer加了不能正常顯示,不加也不能正常顯示,這很矛盾啊。。
問題往往到了最矛盾的時候,也是到了解決的時候,現在我把解決代碼貼出來,大家一看就明白了。多的不說,看代碼:
Js代碼
1.renderer:function(value){??
2.??? if(value instanceof Date){??
3.??????? return new Date(value).format("Y-m-d");??
4.??? }else{??
5.??????? return value;??
6.??? }??
7.}?
renderer:function(value){
if(value instanceof Date){
return new Date(value).format("Y-m-d");
}else{
return value;
}
} 簡單吧?自己寫renderer就是了。。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Extjs日期格式问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。