Extjs 4.1 timefield返回2008年

时间:2015-12-29 23:28:29

标签: extjs extjs4 extjs4.1 extjs5 timefield

我使用extjs SELECT column AS mode, COUNT(1) AS freq FROM dataset.table  GROUP BY 1 ORDER BY 2 DESC LIMIT 1 创建了一个简单的应用程序。这是代码& fiddle

timefield

问题/问题:

  1. 当我使用getValue()时,它返回Ext.create('Ext.form.Panel', { title: 'Time Card', width: 300, bodyPadding: 10, renderTo: Ext.getBody(), items: [{ xtype: 'timefield', id: 'in', fieldLabel: 'Time In', //minValue: '6:00 AM', //maxValue: '8:00 PM', format: 'H:i', increment: 30, anchor: '100%' }, { xtype: 'button', text: 'click', handler: function(){ alert(Ext.getCmp('in').getValue()); console.log(Ext.getCmp('in').getValue()); } }] }); 我不确定为什么它会在2008年回归?
  2. 是否可以捕获时区信息?

2 个答案:

答案 0 :(得分:0)

timefield的来源包含

/**
 * @private
 * This is the date to use when generating time values in the absence of either minValue
 * or maxValue.  Using the current date causes DST issues on DST boundary dates, so this is an
 * arbitrary "safe" date that can be any date aside from DST boundary dates.
 */
initDate: '1/1/2008',
initDateParts: [2008, 0, 1],

你可以覆盖这些属性,虽然它们被标记为私有,但我不推荐它。我建议使用日期字段和时间字段,然后根据时间计算日期。

JavaScript不支持时区,它们仅支持UTC和Local。 ExtJS也不支持时区。如果您需要任意时区,可以查看moment.js

答案 1 :(得分:0)

您可以通过执行与此类似的操作在renderer函数中获取正确的日期:

renderTimeField: function(time) {
    var ndate = new Date(),
        tmin = time.getMinutes(),
        thour = time.getHours();

    return new Date(ndate.setHours(thour, tmin, 0, 0));
},