Extjs TimeField 显示正常时间格式的代码

  如果想正确显示,一般的方法都是改后台代码,使日期时间格式变为string返回,我解决的方法是重写TimeField 的setValue ,具体代码如下:

  

复制代码 代码如下:

  Ext.override(Ext.form.TimeField, {

  getValue: function () {

  return this.value;

  },

  setValue: function (v) {

  this.value = v;

  this.setRawValue(this.formatValue(v));

  return this;

  },

  formatValue: function (v) {

  if (v.length>8) { //timefield最大不超过8个 大于8个的肯定是json中的

  var jsondate = eval("new " + v.substr(1, v.length - 2)).toLocaleTimeString();

  jsondate = jsondate.length == 8 ? jsondate.substr(0, 5) : '0' + jsondate.substr(0, 4); //toLocaleTimeString比较弱智,返回的如果小时是小于10 小时位就只有1位

  return jsondate;

  }

  return v;

  }

  });