EasyUI改動DateBox和DateTimeBox的默認日期格式


        近期整理Easyui控件的時候,對Easyui的DateBox控件和DateTimeBox控件進行了梳理,而我之所以將EasyUI的DateBox控件和DateTimeBox控件放在一起,歸為一類,是由於這兩個控件沒有什么差別,假設你非得說這兩個控件有差別。也無非是DateTimeBox控件后面除了主要的年月日之外帶上了小時或者分鍾或者秒什么的,更何況。這兩個控件在進行日期格式化時所採用的方法也是一樣的。


DateBox介紹:


        Demo實例參看:

                 http://www.jeasyui.com/demo/main/index.php?

plugin=DateBox&theme=default&dir=ltr&pitem=

         屬性方法介紹參看:

                  http://www.jeasyui.com/documentation/index.php#


DateTimeBox介紹:


         Demo實例參看:

                  http://www.jeasyui.com/demo/main/index.php?plugin=DateTimeBox&theme=default&dir=ltr&pitem=   

          屬性方法介紹參看:

                  http://www.jeasyui.com/documentation/index.php#


控件的默認格式:


                  DateBox控件默認的日期格式是:                           DateTimeBox控件默認日期格式是:

                                                                           


        這樣的顯示的格式都是:mm/dd/yyyy。對於我們中國人來說,並不適合我們的習慣。同一時候。他們夾帶了“Today”、“Ok”、“Close”等字樣。假設就這么給用戶使用,盡管說當前這個社會,我們須要面向國際。但軟件的使用者還是我們自己中國客戶,所以說問題就來了~~~~~


問題一:英文改中文


        解決方法:引入easyui-lang-zh_CN.js


       下載地址為:http://www.softhy.net/soft/33695.htm

        注意:

               第一:Easyui引用js時,要先引入jquery.min.js、其次是jquery.easyui.min.js,最后是easyui-lang-zh_CN.js,存在順序關系。

               第二:引入easyui-lang-zh_CN.js后,對應的提示信息也會改變,同一時候改變了這兩個控件的日期默認顯示格式,為:yyyy-mm-dd,效果例如以下:

                                


                               

問題二:日期格式改正


        這兩個控件在改動日期格式上都能夠採用下面兩種方法,我如今已以DateTimeBox為例。說明他們是怎樣實現的。

方法一:split函數+正則表達式

<div style="margin:20px 0;"></div>
	定義日期格式:	
	<input class="easyui-datetimebox" data-options="formatter:ww4,parser:w4" style="width:200px;"> yyyy年mm月dd日hh點</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)+'點'; } function w4(s){ var reg=/[\u4e00-\u9fa5]/ //利用正則表達式分隔 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函數

<div style="margin:20px 0;"></div>
	定義日期格式:	
	<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函數是截取字符串,而在yyyy-m-d hh-mm-ss這樣的日期格式中m、d、h、m、s可能會存在一位數和二位數。整個日期的長度不固定,因此在截取的時候,選取的字符位置不能固定。

   

總結


       這兩種方法的本質一樣。無論是哪種解決方案。它的原理都是不變的。主要是借用Formatter和Parser函數,當中Formatter函數使得選擇日期后將其格式化為我們須要的格式,Parser是分析字符串的函數,這個函以’date’為參數並返回一個日期。

問題來了。不光是要知道它們的解決方案。還要知道它們是怎么產生的,應該怎么從根本上解決問題,這些解決方案背后的本質是什么。

       

        


   

           


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM