fullCalendar比较时间

时间:2012-06-26 14:00:48

标签: fullcalendar

在select事件中,我将事件的开始日期和结束日期作为参数。

我也有一个时间列表

我希望查看列表中的任何项目是否在事件开始和结束时间之间

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&amp;&amp; 8:00&lt; = 8:15 enter image description here

我希望日期不会在这里出现问题。

2 个答案:

答案 0 :(得分:1)

function compareDates(dateFrom, dateTo){
    if ( Date.parse( dateTo ) < Date.parse( dateFrom ) )
        return true;

    return false;
}

如果 dateTo 小于 dateFrom ,则此函数返回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);

答案 1 :(得分:0)

同时我使用gethours和getminutes函数进行比较。但我希望有更好的方法来做到这一点

if( ( templateStartTime.getHours() >= start.getHours() ) && ( templateStartTime.getHours() <= end.getHours() ) &&
    (templateStartTime.getMinutes() >= start.getMinutes() ) && ( templateStartTime.getMinutes() <= end.getMinutes() ))
{
    defaultTemplate = this;
}