1. extjs 判断是不是日期类型
日期判断
function getDiffDate(m){
m-=(D=parseInt(m/86400000))*86400000;
return D+"";
}
//判断日期大小
Ext.apply(Ext.form.VTypes,{
validate:function(componentValue,h){//componentValue就是触发这个事件的组件的值
if(h.param.id){
var graateTime= new Date(componentValue).getTime();
var enterTime = new Date(Ext.getCmp(h.param.id).getValue()).getTime();
if(getDiffDate(graateTime-enterTime)<0){
return false;
}
return true;
}
},
validateText:'入学时间必须晚于毕业时间'
});
var enterDate = new Ext.form.DateField({
fieldLabel:'入学时间',
format:'Y/m/d',
allowBlank:false,
selectOnFocus:true,
name:'enterDate',
id:"enterTime",
width:200
});
var graateDate = new Ext.form.DateField({
fieldLabel:'毕业时间',
format:'Y/m/d',
name:'graateDate',
id:"graateTime",
width:200,
vtype:'validate',
param:{id:'enterTime'}//入学时间的id
});
2. extjs表格日期类型显示为[object Object]
传到前台的json,日期最好是字符串的,在后台查询时,就把日期格式化好,这样前台处理非常容易。
然后如果非要前台处理,Ext.data.Record.create这个最好指明类型,
如:var sample = new Ext.data.Record.create([{
name : "id",
type : "string",
mapping : "id"
}, {
name : "name",
type : "string",
mapping : "name"
}
.....
{header : '开始时间', dataIndex : 'createDate',
renderer:function(value){
if(value instanceof Date){
return new Date(value).format("Y-m-d");
}else{
return value;
}
}
这个的写法没问题
3. Extjs grid表中修改日期(datafield),后台获取的却是Wed Sep 10 2014 00:00:00 GMT+0800这样的格式
因为你Model中 djrq 可能设置的 type = 'date' , 所以会转换为 date并且提交的时候又从date专程了string...所以到后台就是那种格式了
4. extJs中的datefield怎么设置 能只选择当前时间以后的日期
这个设置一个监听函数,选择之后如果是当前日期之前的日期则给出提示,而且dateField不赋值。可以使用 onSelect事件
5. Extjs 中DateFiled的日期格式问题
{
header:'时间',
dataIndex:'date',
editor:newExt.grid.GridEditor(newExt.form.DateField({
format:'Y-m-d'
})),
renderer:function(value){
returnvalue.format("Y-m-d");
}
}
6. extjs的datefield输入错误值时不让自动修改日期格式
开启field的值有效验证,提交前判断存在无效field时不允许继续。