1

在选择事件上,我将事件的开始日期和结束日期作为参数。

我也有时间清单

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

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 在此处输入图像描述

我希望日期不会在这里造成问题。

4

2 回答 2

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);
于 2012-06-29T17:14:36.607 回答
0

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

if( ( templateStartTime.getHours() >= start.getHours() ) && ( templateStartTime.getHours() <= end.getHours() ) &&
    (templateStartTime.getMinutes() >= start.getMinutes() ) && ( templateStartTime.getMinutes() <= end.getMinutes() ))
{
    defaultTemplate = this;
}
于 2012-06-26T14:46:15.937 回答