2012-06-26 107 views
1

在选择事件我有事件的开始日期和结束日期作为参数。fullCalendar比较时间

另外我有次

名单,我想看看是否有我的列表的项目之一是开始时间和结束时间

的3个对象是日期格式之间的事件

我如何比较日期的3倍,看看它的真实?

select: function (start, end, allDay) { 
     var defaultTemplate = undefined; 
     $.each(jsonTimeTemplates, function(){ 
      templateStartTime = $.fullCalendar.parseDate(this.Start); 
      templateEndTime = $.fullCalendar.parseDate(this.End); 
      if((templateStartTime.getTime() >= start.getTime()) && ( templateStartTime.getTime() <= end.getTime())){ 
       defaultTemplate = this; 
      } 
     });    
    }, 
在这种情况下jsonTimeTemplates

是我的对象列表中,但是当我使用Firebug调试if语句永远不会应用。

这里我有我调试的截屏在那里我有 8:00> = 8:00 & & 8:00 < = 8:15 enter image description here

我希望日期的arent在这里做的问题。

回答

0

在此期间,我使用函数gethours和getminutes进行比较。但我希望那里有一个更好的方式做,如果dateTo小于dateFrom

if((templateStartTime.getHours() >= start.getHours()) && (templateStartTime.getHours() <= end.getHours()) && 
    (templateStartTime.getMinutes() >= start.getMinutes()) && (templateStartTime.getMinutes() <= end.getMinutes())) 
{ 
    defaultTemplate = this; 
} 
1
function compareDates(dateFrom, dateTo){ 
    if (Date.parse(dateTo) < Date.parse(dateFrom)) 
     return true; 

    return false; 
} 

此函数返回true。您可以使用此功能来达到您的目标。

函数调用:

var startDateStr = $.fullCalendar.formatDate(start, 'MM/dd/yyyy hh:mm tt'); 
var endDateStr = $.fullCalendar.formatDate(end, 'MM/dd/yyyy hh:mm tt'); 
compareDates(startDateStr, endDateStr);