在ExtJS中获取开始/结束日期之间的日期
Get the dates between start/end date in ExtJS
我正在尝试获取两个日期之间的范围。这是我使用的代码:
var startDateStr = Ext.getCmp('startDateFoi').getSubmitValue();
//console.log(startDateStr); // 10-Mar-2015
var endDateStr = Ext.getCmp('endDateFoi').getSubmitValue();
//console.log(endDateStr); // 12-Mar-2015
allDates = [];
while (startDateStr <= endDateStr) {
allDates.push(new Date(startDateStr));
startDateStr.setDate(startDateStr.getDate() + 1);
}
console.log(allDates);
我在这里错过了什么?格式必须是特定类型的吗?
您可以使用Ext.Date类来处理此问题:Ext.Date.diff
// calculate the difference in days between two dates
var diff = Ext.Date.diff(date1, date2, 'd'));
或者,如果你想要标准的JS版本,这样你就知道它是如何工作的:
Fiddle Link
Ext.application({
name: 'Fiddle',
launch: function() {
var processRequest = function() {
var date1 = Ext.getCmp('date1').getValue();
var date2 = Ext.getCmp('date2').getValue();
// JS counts it in milliseconds
var diff = (date2 - date1) / 1000;
// Number of seconds in one day
console.log(diff / 86400);
};
Ext.create('Ext.panel.Panel', {
title: 'Choose a future date:',
width: 300,
bodyPadding: 10,
renderTo: Ext.getBody(),
items: [{
xtype: 'datepicker',
id: 'date1',
minDate: new Date(),
handler: function(picker, date) {
processRequest();
}
}, {
xtype: 'datepicker',
id: 'date2',
minDate: new Date(),
handler: function(picker, date) {
processRequest();
}
}]
});
}
});
我就是这样做的:首先我做了一个函数:
var ImagedbyDate = function(){
$(document).ready(function(){
// GET ALL THE DATES BETWEEN TWO SELECTED DAYS AND STORE THEM IN AN ARRAY (allDates[])
var startDateStr = Ext.getCmp('startDateFoi').getSubmitValue();
alert(startDateStr);
var endDateStr = Ext.getCmp('endDateFoi').getSubmitValue();
alert(endDateStr);
currentDate = new Date(startDateStr);
endDate = new Date(endDateStr);
alert(currentDate);
allDates = [];
while (currentDate <= endDate) {
allDates.push(new Date(currentDate));
currentDate.setDate(currentDate.getDate() + 1);
}
实际上我加了两行:
currentDate = new Date(startDateStr);
endDate = new Date(endDateStr);
我的物品是这样的:
{
region: 'center',
title: "Rural Broadband",
layout: 'fit',
collapsible: false,
items: [mappanel] , //mapPanel
dockedItems: [{ //Toolbar with Actions - Beginn
xtype: 'toolbar',
dock: 'top',
items: [{
text: 'Current center of the map',
handler: function(){
var c = GeoExt.panel.Map.guess().map.getCenter();
Ext.Msg.alert(this.getText(), c.toString());
}
},{
text: 'See Unassigned Images',
handler: function(){
UnassignedImg();
}
},
{
fieldLabel: 'Start Date',
name: 'startDate',
xtype: 'datefield',
id: 'startDateFoi',
format: 'd-M-Y'
},
{
fieldLabel: 'End Date',
name: 'startDate',
id: 'endDateFoi',
xtype: 'datefield',
format: 'd-M-Y'
}, ...
我希望这能帮助到别人。
相关文章:
- 希望日期开始结束于while循环中的一个房间id的一个数组
- 使用javascript&自定义验证器检查开始日期和结束日期
- 如何在dhtmlxgantt中显示灯箱中的开始日期、结束日期和持续时间
- 如何在javascript中获得给定的月份开始日期和结束日期
- 在选择开始日期后设置结束日期
- JavaScript-计算两个日期之间的天数(包括结束日期)
- 基础日期选择器、结束日期(和时间)不能早于开始日期(和时间)
- 结束日期作为基础日期时间选择器中的选定开始日期
- 开始日期和结束日期输入字段的 JQuery 筛选器表
- 在ExtJS中获取开始/结束日期之间的日期
- 转换mysql的Fullcalendar开始/结束日期
- angularjs提交表单中的开始日期结束日期验证应被禁用
- Jquery FullCalendar扩展开始日期或结束日期
- 从jquery中的开始日期计算结束日期
- 检查开始日期是否小于结束日期(不使用任何pluguin)
- 如何在引导程序中比较结束日期和开始日期,以确保结束日期大于开始日期
- JSON Linq.js 筛选开始日期结束日期列
- Jquery UI日期起始日期和日期结束字段验证
- 比较日期——结束日期应该大于开始日期
- j使用时区/开始日期/结束日期查询进度条