EasyUI修改DateBox和DateTimeBox的默認(rèn)日期格式示例
最近整理Easyui控件的時(shí)候,對(duì)Easyui的DateBox控件和DateTimeBox控件進(jìn)行了梳理,而我之所以將EasyUI的DateBox控件和DateTimeBox控件放在一起,歸為一類,是因?yàn)檫@兩個(gè)控件沒有什么區(qū)別,如果你非得說這兩個(gè)控件有區(qū)別,也無非是DateTimeBox控件后面除了基本的年月日之外帶上了小時(shí)或者分鐘或者秒什么的,更何況,這兩個(gè)控件在進(jìn)行日期格式化時(shí)所采用的方法也是一樣的。
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,對(duì)于我們中國人來說,并不適合我們的習(xí)慣,同時(shí),他們夾帶了“Today”、“Ok”、“Close”等字樣,如果就這么給用戶使用,雖然說當(dāng)前這個(gè)社會(huì),我們需要面向國際,但軟件的使用者還是我們自己中國客戶,所以說問題就來了~~~~~
問題一:英文改中文
解決方法:引入easyui-lang-zh_CN.js
注意:
第一:Easyui引用js時(shí),要先引入jQuery.min.js、其次是jquery.easyui.min.js,最后是easyui-lang-zh_CN.js,存在順序關(guān)系。
第二:引入easyui-lang-zh_CN.js后,相應(yīng)的提示信息也會(huì)改變,同時(shí)改變了這兩個(gè)控件的日期默認(rèn)顯示格式,為:yyyy-mm-dd,效果如下:

問題二:日期格式改正
這兩個(gè)控件在修改日期格式上都可以采用以下兩種方法,我現(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可能會(huì)存在一位數(shù)和二位數(shù),整個(gè)日期的長度不固定,因此在截取的時(shí)候,選取的字符位置不能固定。
總結(jié)
這兩種方法的本質(zhì)一樣,不管是哪種解決方式,它的原理都是不變的,主要是借用Formatter和Parser函數(shù),其中Formatter函數(shù)使得選擇日期后將其格式化為我們需要的格式,Parser是分析字符串的函數(shù),這個(gè)函以'date'為參數(shù)并返回一個(gè)日期。問題來了,不光是要知道它們的解決方式,還要知道它們是怎么產(chǎn)生的,應(yīng)該怎么從根本上解決這個(gè)問題,這些解決方式背后的本質(zhì)是什么。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jquery插件splitScren實(shí)現(xiàn)頁面分屏切換模板特效
這篇文章主要介紹了jquery插件splitScren實(shí)現(xiàn)頁面分屏切換模板特效的相關(guān)資料,需要的朋友可以參考下2015-06-06
jQuery簡單tab切換效果實(shí)現(xiàn)方法
這篇文章主要介紹了jQuery簡單tab切換效果實(shí)現(xiàn)方法,涉及jQuery鏈?zhǔn)讲僮骷氨闅v的技巧,是非常具有實(shí)用價(jià)值的功能,需要的朋友可以參考下2015-04-04
jQuery ajax全局函數(shù)處理session過期后的ajax跳轉(zhuǎn)問題
這篇文章主要介紹了基于jQuery的全局ajax函數(shù)處理session過期后的ajax操作的相關(guān)資料,需要的朋友可以參考下2016-06-06
jquery實(shí)現(xiàn)彈出窗口效果的實(shí)例代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)彈出窗口效果的實(shí)例代碼。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-11-11
jquery 觸發(fā)a鏈接點(diǎn)擊事件解決方案
使用jquery為a連接綁定點(diǎn)擊事件,具體代碼如下,感興趣的朋友可以參考下,希望可以幫助到你2013-05-05
jQuery+css實(shí)現(xiàn)非常漂亮的水平導(dǎo)航菜單效果
這篇文章主要介紹了jQuery+css實(shí)現(xiàn)非常漂亮的水平導(dǎo)航菜單效果,通過each方法遍歷元素再使用removeClass與addClass變換頁面元素樣式實(shí)現(xiàn)導(dǎo)航菜單的切換效果,需要的朋友可以參考下2016-07-07

