需要在EXTJ的时间字段中显示07:00、15:00、23:00(增加8小时)
Need to show hours as 07:00, 15:00, 23:00 (8 hrs increment) in EXTJs timefield
我需要在EXTJ的时间字段中显示07:00、15:00、23:00(8小时增量),但当我使用以下代码时,它没有给出所需的输出,如果我缺少什么,有人能帮我吗。
Ext.create('Ext.form.Panel', {
title: 'Time Card',
width: 300,
bodyPadding: 10,
renderTo: Ext.getBody(),
items: [{
xtype: 'timefield',
name: 'in',
fieldLabel: 'Time In',
format : 'H:i',
minValue: '07:00',
maxValue: '23:00',
increment: 480,
anchor: '100%'
}]
});
提前感谢。
这里有一个小问题,因为时间选择器的工作方式与您尝试的不同。我会把它分解,这样你就有了一个想法:
1) 获取24小时内的所有时间(从00到23)。
2) 每increment
分钟将使用一种方法将时间从00推至23。例如(如果设置increment: 60
,则会得到00:00、01:00、02:00)
3) 此数据集将返回到您的时间字段,并将使用您的minValue和MaxValue 对其应用过滤器
因此,使用480的设置,您将得到:00:00,08:00,下午16:00
然后应用过滤器(minValue: 07:00
和maxValue: 23:00
)将去掉第一个过滤器,剩下08:00和16:00。
基本上,你想要的是第一个间隔是7小时,然后是第一个循环后的8小时,所以你需要应用这样的覆盖:
****我还没有彻底测试过,所以如果你想在不同的时间间隔使用它,你可能会小心。***
Ext.define('Ext.picker.override.Time',{
override: 'Ext.picker.Time',
statics: {
createStore: function(format, increment, startHour) {
var dateUtil = Ext.Date,
clearTime = dateUtil.clearTime,
initDate = this.prototype.initDate,
times = [],
min = clearTime(new Date(initDate[0], initDate[1], initDate[2])),
startHour = startHour || min,
max = dateUtil.add(clearTime(new Date(initDate[0], initDate[1], initDate[2])), 'mi', (24 * 60) - 1),
firstIncrement = startHour.getHours() * 60,
count = 0;
while(min <= max){
times.push({
disp: dateUtil.dateFormat(min, format),
date: min
});
min = dateUtil.add(min, 'mi', (count++ == 0 ? firstIncrement : increment));
}
return new Ext.data.Store({
model: Ext.picker.Time.prototype.modelType,
data: times
});
}
}
});
Ext.define('Ext.form.field.CustomTime',{
extend: 'Ext.form.field.Time',
alias: 'widget.customtimefield',
initComponent: function() {
var me = this,
min = me.minValue,
max = me.maxValue;
if (min) {
me.setMinValue(min);
}
if (max) {
me.setMaxValue(max);
}
me.displayTpl = new Ext.XTemplate(
'<tpl for=".">' +
'{[typeof values === "string" ? values : this.formatDate(values["' + me.displayField + '"])]}' +
'<tpl if="xindex < xcount">' + me.delimiter + '</tpl>' +
'</tpl>', {
formatDate: me.formatDate.bind(me)
});
// Create a store of times.
me.store = Ext.picker.Time.createStore(me.format, me.increment, me.minValue);
me.superclass.superclass.initComponent.call(this);
// Ensure time constraints are applied to the store.
// TimePicker does this on create.
me.getPicker();
}
});
Ext.create('Ext.form.Panel', {
title: 'Time Card',
width: 300,
bodyPadding: 10,
renderTo: Ext.getBody(),
items: [{
xtype: 'customtimefield',
name: 'in',
fieldLabel: 'Time In',
format : 'H:i',
minValue: '07:00',
maxValue: '23:00',
increment: 480,
anchor: '100%'
}]
});
Fiddle:https://fiddle.sencha.com/#fiddle/i3e
相关文章:
- JQuery使计数器每次更改时都会增加
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 引导时间选择器在增加或减少小时和分钟的同时获取 NaN
- 日期时间格式增加了一个小时
- 需要在EXTJ的时间字段中显示07:00、15:00、23:00(增加8小时)
- 使用 JS 将毫秒转换为 hh:mm:ss 会增加 1 小时
- 如何在鼠标悬停和鼠标出出时增加选择元素的大小时固定表格的位置
- 比较前将时间增加一小时
- 当从客户端从ajax调用检索时,我在服务器上的日期时间增加了12.30小时
- jquery(windows).每次调整窗口大小时,高度都会增加
- 游戏如何在不影响db的情况下每小时增加x个金币?
- 如何制作一个连续的Jquery计数器,每24小时增加一个数字
- setUTCHours将传递给函数的时间增加一个小时
- 当我将鼠标悬停在Button上以增加它的大小时,它下面的元素会向下移动
- 如何增加小时,分钟和秒
- 通过使用时刻javascript我只需要添加小时(不增加或添加分钟)/轮到最近的小时或月或年
- 如何在之前“更改”的结束时间增加2小时开始,使用jQuery时间选择器
- 从特定日期起,每24小时将var增加一