EasyUI修改DateBox和DateTimeBox的默認(rèn)日期格式示例
最近整理Easyui控件的時候,對Easyui的DateBox控件和DateTimeBox控件進(jìn)行了梳理,而我之所以將EasyUI的DateBox控件和DateTimeBox控件放在一起,歸為一類,是因?yàn)檫@兩個控件沒有什么區(qū)別,如果你非得說這兩個控件有區(qū)別,也無非是DateTimeBox控件后面除了基本的年月日之外帶上了小時或者分鐘或者秒什么的,更何況,這兩個控件在進(jìn)行日期格式化時所采用的方法也是一樣的。
DateBox介紹:
Demo實(shí)例參看:http://www.jeasyui.com/demo/main/index.php?plugin=DateBox&theme=default&dir=ltr&pitem=
屬性方法介紹參看: http://www.jeasyui.com/documentation/index.php#
DateTimeBox介紹:
Demo實(shí)例參看:http://www.jeasyui.com/demo/main/index.php?plugin=DateTimeBox&theme=default&dir=ltr&pitem=
屬性方法介紹參看:http://www.jeasyui.com/documentation/index.php#
控件的默認(rèn)格式:
DateBox控件默認(rèn)的日期格式是: DateTimeBox控件默認(rèn)日期格式是:
這種顯示的格式都是:mm/dd/yyyy,對于我們中國人來說,并不適合我們的習(xí)慣,同時,他們夾帶了“Today”、“Ok”、“Close”等字樣,如果就這么給用戶使用,雖然說當(dāng)前這個社會,我們需要面向國際,但軟件的使用者還是我們自己中國客戶,所以說問題就來了~~~~~
問題一:英文改中文
解決方法:引入easyui-lang-zh_CN.js
注意:
第一:Easyui引用js時,要先引入jQuery.min.js、其次是jquery.easyui.min.js,最后是easyui-lang-zh_CN.js,存在順序關(guān)系。
第二:引入easyui-lang-zh_CN.js后,相應(yīng)的提示信息也會改變,同時改變了這兩個控件的日期默認(rèn)顯示格式,為:yyyy-mm-dd,效果如下:
問題二:日期格式改正
這兩個控件在修改日期格式上都可以采用以下兩種方法,我現(xiàn)在已以DateTimeBox為例,說明他們是如何實(shí)現(xiàn)的。
方法一:split函數(shù)+正則表達(dá)式
定義日期格式: <input class="easyui-datetimebox" data-options="formatter:ww4,parser:w4" style="width:200px;"> yyyy年mm月dd日hh點(diǎn)</input> <script type="text/javascript"> function ww4(date){ var y = date.getFullYear(); var m = date.getMonth()+1; var d = date.getDate(); var h = date.getHours(); return y+'年'+(m<10?('0'+m):m)+'月'+(d<10?('0'+d):d)+'日'+(h<10?('0'+h):h)+'點(diǎn)'; } function w4(s){ var reg=/[\u4e00-\u9fa5]/ //利用正則表達(dá)式分隔 var ss = (s.split(reg)); var y = parseInt(ss[0],10); var m = parseInt(ss[1],10); var d = parseInt(ss[2],10); var h = parseInt(ss[3],10); if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h)){ return new Date(y,m-1,d,h); } else { return new Date(); } } </script>
顯示效果如下:
方法二:substring函數(shù)
定義日期格式: <input class="easyui-datetimebox" data-options="formatter:ww3,parser:w3" style="width:200px;"> yyyy/mm/dd hh-mm-ss</input> <script type="text/javascript"> function ww3(date){ var y = date.getFullYear(); var m = date.getMonth()+1; var d = date.getDate(); var h = date.getHours(); var min = date.getMinutes(); var sec = date.getSeconds(); var str = y+'/'+(m<10?('0'+m):m)+'/'+(d<10?('0'+d):d)+'/'+' '+(h<10?('0'+h):h)+':'+(min<10?('0'+min):min)+':'+(sec<10?('0'+sec):sec); return str; } function w3(s){ if (!s) return new Date(); var y = s.substring(0,4); var m =s.substring(5,7); var d = s.substring(8,10); var h = s.substring(11,14); var min = s.substring(15,17); var sec = s.substring(18,20); if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h) && !isNaN(min) && !isNaN(sec)){ return new Date(y,m-1,d,h,min,sec); } else { return new Date(); } } </script>
顯示效果如下:
注意:
方法二不適合將日期格式改為類似于yyyy-m-d h-m-s,理由:Substring函數(shù)是截取字符串,而在yyyy-m-d hh-mm-ss這種日期格式中m、d、h、m、s可能會存在一位數(shù)和二位數(shù),整個日期的長度不固定,因此在截取的時候,選取的字符位置不能固定。
總結(jié)
這兩種方法的本質(zhì)一樣,不管是哪種解決方式,它的原理都是不變的,主要是借用Formatter和Parser函數(shù),其中Formatter函數(shù)使得選擇日期后將其格式化為我們需要的格式,Parser是分析字符串的函數(shù),這個函以'date'為參數(shù)并返回一個日期。問題來了,不光是要知道它們的解決方式,還要知道它們是怎么產(chǎn)生的,應(yīng)該怎么從根本上解決這個問題,這些解決方式背后的本質(zhì)是什么。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery 函數(shù)實(shí)例分析【函數(shù)聲明、函數(shù)表達(dá)式、匿名函數(shù)等】
這篇文章主要介紹了jQuery 函數(shù),結(jié)合實(shí)例形式分析了jquery函數(shù)聲明、函數(shù)表達(dá)式、匿名函數(shù)等相關(guān)使用技巧,需要的朋友可以參考下2020-05-05輕松學(xué)習(xí)jQuery插件EasyUI EasyUI創(chuàng)建CRUD應(yīng)用
這篇文章主要幫大家輕松學(xué)習(xí)jQuery插件EasyUI,并利用EasyUI創(chuàng)建CRUD應(yīng)用,感興趣的小伙伴們可以參考一下2015-11-11JQuery 獲取和設(shè)置Select選項(xiàng)的代碼
JQuery獲取和設(shè)置Select選項(xiàng)2010-02-02jQuery實(shí)現(xiàn)表頭固定效果的實(shí)例代碼
jQuery實(shí)現(xiàn)表頭固定效果的實(shí)例代碼,需要的朋友可以參考一下2013-05-05jQuery的實(shí)現(xiàn)原理的模擬代碼 -3 事件處理
在 jQuery 中,實(shí)際注冊的事件處理函數(shù)是一個匿名的閉包函數(shù),這個函數(shù)最終都是通過調(diào)用 jQuery.event.handle 進(jìn)行處理的。2010-08-08jquery form表單提交插件asp.net后臺中文解碼
對于jquery form表單提交插件jquery.form.js,在提交表單數(shù)據(jù)時,如果表單數(shù)據(jù)有中文,則被提交的數(shù)據(jù)是要經(jīng)過編碼的。2010-06-06