楼主做的是一个请假流程,需要设定请假开始时间与结束时间。然而发现有bug.开始时间 、结束时间、申请时间竟然可以毫无关系,这显然是不符合逻辑的。于是找了一些资料后,修改代码如下
,{
xtype: 'datefield',
fieldLabel: '请假开始时间',
format: 'Y/m/d H:i:s',
name: 'startTime',
id:'startTime',
//下面是为了修补bug增加的代码
value: Ext.Date.add(new Date(), Ext.Date.DAY, 1), //value:显示在控件上的时间,下面会深入讲解
minValue: Ext.Date.add(new Date(), Ext.Date.DAY, 1), //minValue:对日历控件进行限制,不能选取今天及以前的日子,见下图
listeners:{ //监听事件
select: function () { //select函数
var start = Ext.getCmp('startTime').getValue();
Ext.getCmp('endTime').setMinValue(start); //设置结束时间不早于开始时间
var endDate = Ext.getCmp('endTime').getValue();
if (start > endDate) {
Ext.getCmp('endTime').setValue(start);
}}}
},{
xtype: 'datefield',
fieldLabel: '请假结束时间',
format: 'Y/m/d H:i:s',
name: 'endTime',
id: 'endTime',
value: Ext.Date.add(new Date(), Ext.Date.DAY, 1),
minValue: Ext.Date.add(new Date(), Ext.Date.DAY, 1),
listeners:{
select: function () {
var start = Ext.getCmp('startTime').getValue();
var endDate = Ext.getCmp('endTime').getValue();
if (start > endDate) {
Ext.getCmp('startTime').setValue(endDate);
}}}}
Ext.Date.add(date, interval, value)
先说date.我这里用的是new Date(), 当然各位也可以明确一个时间点,比如new Date(7/1/1997),这是一个初始的值。更详细的大家可以看ext4.0.7官方文档
然后interval.可选的值就非常丰富了。Ext.Date.YEAR Ext.Date.MONTH Ext.Date.DAY,Ext.Date.HOUR,Ext.DateExt.MINUTE,Date.SECOND,Ext.Date.MILLI。这就是value的值
最后说value,这是一个数值,可以为正数,也可以为负数。
然后大家可以发现我的例子就是在当前日期加上1天。