溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

EasyUI修改DateBox和DateTimeBox的默認日期格式示例

發布時間:2020-10-08 18:29:46 來源:腳本之家 閱讀:351 作者:Danna_Danna 欄目:web開發

最近整理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控件默認日期格式是:

EasyUI修改DateBox和DateTimeBox的默認日期格式示例                  EasyUI修改DateBox和DateTimeBox的默認日期格式示例         

 這種顯示的格式都是:mm/dd/yyyy,對于我們中國人來說,并不適合我們的習慣,同時,他們夾帶了“Today”、“Ok”、“Close”等字樣,如果就這么給用戶使用,雖然說當前這個社會,我們需要面向國際,但軟件的使用者還是我們自己中國客戶,所以說問題就來了~~~~~

問題一:英文改中文

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

注意:

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

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

EasyUI修改DateBox和DateTimeBox的默認日期格式示例                                

EasyUI修改DateBox和DateTimeBox的默認日期格式示例

問題二:日期格式改正

這兩個控件在修改日期格式上都可以采用以下兩種方法,我現在已以DateTimeBox為例,說明他們是如何實現的。

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

 定義日期格式: 
 <input class="easyui-datetimebox" data-options="formatter:ww4,parser:w4" > 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> 

顯示效果如下:

EasyUI修改DateBox和DateTimeBox的默認日期格式示例                 

方法二:substring函數

 定義日期格式: 
 <input class="easyui-datetimebox" data-options="formatter:ww3,parser:w3" > 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> 

顯示效果如下:

EasyUI修改DateBox和DateTimeBox的默認日期格式示例

注意:

方法二不適合將日期格式改為類似于yyyy-m-d h-m-s,理由:Substring函數是截取字符串,而在yyyy-m-d hh-mm-ss這種日期格式中m、d、h、m、s可能會存在一位數和二位數,整個日期的長度不固定,因此在截取的時候,選取的字符位置不能固定。

總結

這兩種方法的本質一樣,不管是哪種解決方式,它的原理都是不變的,主要是借用Formatter和Parser函數,其中Formatter函數使得選擇日期后將其格式化為我們需要的格式,Parser是分析字符串的函數,這個函以'date'為參數并返回一個日期。問題來了,不光是要知道它們的解決方式,還要知道它們是怎么產生的,應該怎么從根本上解決這個問題,這些解決方式背后的本質是什么。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。      

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女