在以下情况下,日期比较无法正常工作。我正在比较两个日期。第一个工作得很好,第二对比较有问题:
function doGet(e){
var app = UiApp.createApplication();
var grid = app.createGrid(4, 3).setStyleAttributes({'margin':'20'});
grid.setWidget(0, 0, app.createLabel('User ID:'));
grid.setWidget(0, 1, app.createTextBox().setName('idBox').setId('idBox'));
grid.setWidget(1, 0, app.createLabel('From Date:'));
grid.setWidget(1, 1, app.createTextBox().setName('sDate').setId('sDate'));
grid.setWidget(2, 0, app.createLabel('To Date:'));
grid.setWidget(2, 1, app.createTextBox().setName('eDate').setId('eDate'));
createDatePicker(app);//date picker function works perfectly fine(used for selecting dates from calendar)
var dhandler = app.createServerHandler('pickDate');
app.getElementById('sDate').addClickHandler(dhandler);
app.getElementById('eDate').addClickHandler(dhandler);
var panel = app.createVerticalPanel().setId('settingsPanel');
panel.add(app.createLabel('Enter UserID:');
panel.add(grid);
var button = app.createButton('Search').setId('search');
var handler = app.createServerClickHandler('_searchUser');
handler.addCallbackElement(grid);
button.addClickHandler(handler);
grid.setWidget(3, 1, button);
app.add(panel);
return app;
}
function _searchUser(e){
var app = UiApp.getActiveApplication();
var id = e.parameter.idBox;
var sdt = Utilities.formatDate(new Date(e.parameter.sDate), "PST", 'M/d/YYYY').toString();
var edt = Utilities.formatDate(new Date(e.parameter.eDate), "PST", 'M/d/YYYY').toString();
app.add(app.createLabel("ID entered: "+id));
app.add(app.createLabel("Start Date: "+sdt));
app.add(app.createLabel("End Date: "+edt));
var tsdt = Utilities.formatDate(new Date("6/1/2014"), "PST", "M/d/YYYY");//just for example
var tedt = Utilities.formatDate(new Date("6/3/2014"), "PST", "M/d/YYYY");//just for example
app.add(app.createLabel("Sample Start Date compared to: "+tsdt));
app.add(app.createLabel("Sample End Date Compared to: "+tedt));
if(sdt == tsdt){app.add(app.createLabel("Start Date: EQUAL "))}
if(sdt > tsdt){app.add(app.createLabel("Start Date: Greater "))}
if(sdt < tsdt){app.add(app.createLabel("Start Date: Smaller "))}
if(edt == tedt){app.add(app.createLabel("End Date : EQUAL "))}
if(edt > tedt){app.add(app.createLabel("End Date: Greater "))}
if(edt < tedt){app.add(app.createLabel("End Date: Smaller "))}
return app;
}
上面代码中的开始日期经过完美比较,适用于所有情况,即等于、大于和小于。但是结束日期(edt 和 tedt)不会返回大于一周的日期值到 2014 年 6 月 3 日的样本日期的正确结果。这意味着如果输入 2014 年 6 月 10 日或任何其他日期,直到月底,那么它返回 Smaller 作为结果,这不应该是这种情况。
有人可以帮我解决这个问题吗