Extjs中時區和前臺的時區不一致
阿新 • • 發佈:2019-02-09
當後臺伺服器的時區和前臺的時區不一致,我們可以通過手動轉換來達到效果。
JS時區轉載函式:
function formatTime(date){ //CST時間和UTC時差轉換 var formatPattern = 'Y-m-d H:i'; var dateStr=date.toString(); var position=dateStr.indexOf("UTC"); if(position!=-1){ return Ext.util.Format.date(date, formatPattern); }else{ var vdate=new Date(date); //後臺預設為格林尼治時間,該方法會預設把後臺時間認為是北京時間,北京時間比格林尼治時間多14小時。 //找出當地時間偏移值的毫秒數 var localOffset=vdate.getTimezoneOffset()*60000; var utcOffset= vdate.getTime() + localOffset; var timezone=utcOffset-6*3600000; var lastDate=new Date(timezone); return Ext.util.Format.date(lastDate, formatPattern); } }
Grid Panel 呼叫示例:
function formatShowTime(value){ return formatTime(value); } var gridPanel = Ext.create('Ext.grid.Panel', { id: GRID_PANLE, store: dataDP, columns: [ { text: '請求總數', flex: 1, dataIndex: 'totalReq' }, { text: '成功請求', flex: 1, dataIndex: 'successResp' }, { text: '平均時延', flex: 1, dataIndex: 'avgDelayTime', xtype: 'numbercolumn', format:'0.000' }, { text: '精度', flex: 1, dataIndex: 'pricision', xtype: 'numbercolumn', format:'0.000' }, { text: '開始時間', flex: 1, dataIndex: 'beginTime', renderer: formatShowTime }, // { text: '結束時間', flex: 1, dataIndex: 'endTime', xtype:'datecolumn', format:'Y-m-d H:i' } { text: '結束時間', flex: 1, dataIndex: 'endTime', renderer: formatShowTime } ], layout: 'fit' });
這樣時間的顯示就正常了,不會有時區顯示異常的問題了。