關於json時間數據格式轉換與修改


使用easyui獲取JSON時間數據時間數據時,通常是一長串的數字而不是我們想要的類似2018-11-01的普通時間格式。

此時我們就需要使用到關於JSON時間的格式化,而將時間轉化成我們想要的格式。

一般轉化格式

之前一直使用的  toLocaleDateString()  但是用着用着發現了bug,不同瀏覽器對於 toLocaleDateString()  的解析結果不同,所以很容易造成前一天調試好發現顯示正常了,等到第二天又會出現時間格式問題。

 

后面就換了一種方法,發現這個方法確實要比  toLocaleDateString()  更合適。

話不多說,直接上代碼吧

{field:'setupdate',title:'時間',width:100,align:'center',formatter:formatterdate,editor:{
				type:'datebox',
				options:{
	
					required:true,
				}
			}}  //使用的是easyui-datagrid數據網格


 function formatterdate(val, row) { //在外部創建一個時間轉化函數 在 field 中進行調用
var date = new Date(val); return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(); }

這樣處理過后就能將時間正常的顯示出來了。當然這個轉化函數也可以直接在寫在  field 中,不過為了代碼的美觀,還是推薦寫在外部。

 

格式化后在進行行內編輯的時候,發現轉化后的時間無法在啟動修改編輯時,對 datebox 進行賦值,同時這時候 datebox 選定的日期無法傳輸到后台。

這時候舉要使用到JQuery 的$.extend 方法 對 dataGrid 的editors 進行繼承擴展

 1 $.extend($.fn.datagrid.defaults.editors, {
 2             datebox : {
 3                 init : function(container, options) {
 4                     var input = $('<input type="text">').appendTo(container);
 5                     input.datebox(options);
 6                     return input;
 7                 },
 8                 destroy : function(target) {
 9                     $(target).datebox('destroy');
10                 },
11                 getValue : function(target) {
12                     return $(target).datebox('getValue');//獲得舊值
13                 },
14                 setValue : function(target, value) {
15                     console.info(formatterdate(value));
16                     $(target).datebox('setValue', formatterdate(value));//設置新值的日期格式
17                 },
18                 resize : function(target, width) {
19                     $(target).datebox('resize', width);
20                 }
21             }
22         });

這樣處理過后的時間就能夠進行一系列的操作了,


免責聲明!

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



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