{
columnWidth : .5,
layout : 'form',
border : false,
items : [{
xtype : 'datefield',
fieldLabel : '結束日期',
format : 'Y-m-d',
allowBlank : true,
name : 'warnenddate',
id:'enddate',
//vtype: 'daterange', // 調用的 驗證方法
//startDateField: 'begindate', // 設置開始時間
maxLength : '20',
anchor : '90%',
listeners:{
"select":function(){
var bd = Ext.getCmp('begindate').getValue();
var ed = Ext.getCmp('enddate').getValue();
var bdd = Date.parse(bd); //Date.parse的處理很關鍵
var edd = Date.parse(ed);
var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth()+1;
var day = myDate.getDate();
var now = year+"/"+month+"/"+day;
//alert(now);
var xdd = Date.parse(now);//變爲毫秒
//alert(xdd);
if(bd==""||bdd=="NaN"){
var config = {
title:'提示',
msg: '請選擇開始日期!'
}
Ext.Msg.show(config);
var bd=Ext.getCmp("enddate");
bd.setValue(" ");
return false;
}else{
if(edd>=xdd){
if(edd>=bdd){
return true;
}else{
var config = {
title:'提示',
msg: '開始日期不能大於結束日期!'
}
Ext.Msg.show(config);
var bd=Ext.getCmp("enddate");
bd.setValue(" ");
return false;
}
}else{
var config = {
title:'提示',
msg: '當前日期不能大於結束日期!'
}
Ext.Msg.show(config);
var bd=Ext.getCmp("enddate");
bd.setValue(" ");
return false;
}
}
}
}
}]
}, {
columnWidth : .5,
layout : 'form',
border : false,
items : [{
xtype : 'timefield',
fieldLabel : '結束時間',
format : 'G:i:s',
allowBlank : true,
name : 'warnendtime',
id:'endtime',
maxLength : '8',
anchor : '90%',
listeners:{
"select":function(){
var bd = Ext.getCmp('begindate').getValue();
var bdd = Date.parse(bd);//變爲毫秒
var ed = Ext.getCmp('enddate').getValue();
var edd = Date.parse(ed);//變爲毫秒
var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth()+1;
var day = myDate.getDate();
var now = year+"/"+month+"/"+day;
var xdd = Date.parse(now);//變爲毫秒
if(ed==""||edd=="NaN"){
var config = {
title:'提示',
msg: '請先選擇結束日期!'
}
Ext.Msg.show(config);
var tt=Ext.getCmp("endtime");
tt.setValue(" ");
return flase;
}
else{
if(xdd==edd){
var bt = Ext.getCmp('begintime').getValue(); //開始時間
var et = Ext.getCmp('endtime').getValue(); //結束時間
var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth()+1;
var day = myDate.getDate();
var now = year+"/"+month+"/"+day;
var xt= myDate.getTime();
if(bt==""||bt==null){
var config = {
title:'提示',
msg: '請選擇開始時間!'
}
Ext.Msg.show(config);
var tt=Ext.getCmp("endtime");
tt.setValue(" ");
return false;
}
bt= Date.parse(now +" "+ bt);
et= Date.parse(now +" "+ et);
if (et>xt) {
if(bdd==edd){
var bt = Ext.getCmp('begintime').getValue(); //開始時間
if(bt==""||bt==null){
var config = {
title:'提示',
msg: '請選擇開始時間!'
}
Ext.Msg.show(config);
var tt=Ext.getCmp("endtime");
tt.setValue(" ");
return false;
}
var et = Ext.getCmp('endtime').getValue(); //結束時間
var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth()+1;
var day = myDate.getDate();
var now = year+"/"+month+"/"+day;
bt= Date.parse(now +" "+ bt);
et= Date.parse(now +" "+ et);
if (et>bt) {
return true;
}else if(et<bt){
var config = {
title:'提示',
msg: '結束時間不能小於開始時間!'
}
Ext.Msg.show(config);
var tt=Ext.getCmp("endtime");
tt.setValue(" ");
return false;
}else{
var config = {
title:'提示',
msg: '結束時間不能等於開始時間!'
}
Ext.Msg.show(config);
var tt=Ext.getCmp("endtime");
tt.setValue(" ");
return false;
}
}else if(edd>bdd){
var bt = Ext.getCmp('begintime').getValue(); //開始時間
if(bt==""||bt==null){
var config = {
title:'提示',
msg: '請選擇開始時間!'
}
Ext.Msg.show(config);
var tt=Ext.getCmp("endtime");
tt.setValue(" ");
return false;
}
return true;
}
}else if(et<xt){
var config = {
title:'提示',
msg: '結束時間不能小於當前時間!'
}
Ext.Msg.show(config);
var tt=Ext.getCmp("endtime");
tt.setValue(" ");
return false;
}else{
var config = {
title:'提示',
msg: '結束時間不能等於當前時間!'
}
Ext.Msg.show(config);
var tt=Ext.getCmp("endtime");
tt.setValue(" ");
return false;
}
}else if(edd>xdd){
var bt = Ext.getCmp('begintime').getValue(); //開始時間
if(bt==""||bt==null){
var config = {
title:'提示',
msg: '請選擇開始時間!'
}
Ext.Msg.show(config);
var tt=Ext.getCmp("endtime");
tt.setValue(" ");
return false;
}
return true;
}
}
}
}
}]
}]
}
開始日期和開始時間不能在結束日期和結束時間之後,還得跟當前日期和當前時間比較,重點在邏輯