使用javascript检查事件日期是否有效

时间:2014-12-01 15:03:25

标签: javascript jquery date fullcalendar

我使用fullcalendar创建了一个应用程序,应用程序工作正常,但我遇到的问题是事件正在共享通过拖放分配给他们的时间,如下所示。由于我的要求是任何事件都不应与其他事件分享时间。

我已将此问题发布在 SO

所以为了解决这个问题,我提出了这个问题,就像我有一套如下所示的情况

[
{start : '2014-11-13T12:00:00', end : '2014-11-13T14:00:00'},
{start : '2014-11-13T14:30:00', end : '2014-11-13T16:00:00'}
]

我必须检查我所放置的日期时间是否被某些其他事件使用

说日期时间{start : '2014-11-13T11:00:00', end : '2014-11-13T12:00:00'}

传递

{start : '2014-11-13T10:30:00', end : '2014-11-13T11:30:00'}

{start : '2014-11-13T13:30:00', end : '2014-11-13T14:30:00'}

使用javascript

1 个答案:

答案 0 :(得分:1)

你可以尝试使用这样的代码来检查日期是否已经在集合中这只是一个例子,但是这个函数应该返回true或false,具体取决于日期是否正常:

<script type="text/javascript">
var test = [
{start : '2014-11-13T12:00:00', end : '2014-11-13T14:00:00'},
{start : '2014-11-13T14:30:00', end : '2014-11-13T16:00:00'}
];
var test1 = {start : '2014-11-13T13:30:00', end : '2014-11-13T14:30:00'};

if(checkDates(test, test1))
{
    window.alert("Ok");
}
else
{
   window.alert("Error");
}
function checkDates(test, test1)
{
    var returnBoolean = true;
    for(var i = 0; i < test.length; i++)
    {
       if(((new Date(test1.start)) >= (new Date(test[i].start)) && (new Date(test1.start)) <= (new Date(test[i].end))) || ((new Date(test1.end)) >= (new Date(test[i].start)) && (new Date(test1.end)) <= (new Date(test[i].end))))
       {
           returnBoolean = false;
           break;
       }
    }
    return returnBoolean;
}
</script>