Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript检查事件日期是否有效_Javascript_Jquery_Date_Fullcalendar - Fatal编程技术网

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

使用javascript检查事件日期是否有效,javascript,jquery,date,fullcalendar,Javascript,Jquery,Date,Fullcalendar,我已经使用fullcalendar创建了一个应用程序,该应用程序运行良好,但我面临的问题是事件通过拖放共享分配给它们的时间,如下所示。因为我的要求是,任何活动都不应与任何其他活动共享时间 我已经在 为了解决这个问题,我提出了一组sated,如下所示 [ {start : '2014-11-13T12:00:00', end : '2014-11-13T14:00:00'}, {start : '2014-11-13T14:30:00', end : '2014-11-13T16:00:00'}

我已经使用fullcalendar创建了一个应用程序,该应用程序运行良好,但我面临的问题是事件通过拖放共享分配给它们的时间,如下所示。因为我的要求是,任何活动都不应与任何其他活动共享时间

我已经在

为了解决这个问题,我提出了一组sated,如下所示

[
{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'}
是否应失败

{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

您可以尝试使用如下代码检查日期是否已在集合中这只是一个示例,但此函数应根据日期是否正确返回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>

var测试=[
{开始:'2014-11-13T12:00:00',结束:'2014-11-13T14:00:00'},
{开始:'2014-11-13T14:30:00',结束:'2014-11-13T16:00:00'}
];
var test1={start:'2014-11-13T13:30:00',end:'2014-11-13T14:30:00'};
if(检查日期(测试,测试1))
{
窗口警报(“正常”);
}
其他的
{
窗口。警报(“错误”);
}
函数检查日期(测试,测试1)
{
var returnBoolean=true;
对于(变量i=0;i如果(((新日期(test1.start))>=(新日期(test[i].start))&&(新日期(test1.start))=(新日期(test[i].start))&&(新日期(test1.end))使用@Nit 2.8.4/moment.min.js有什么问题吗?@Nit你看到我的JSFIDLE了吗,@Nit在那里一周后,事件可以通过拖动共享时间,这是我想要防止的,只有当它放置在一个未定位的时间时,它才应该被应用,但不起作用……看这个,在那一周,拖动一个事件和地点,以及如果没有与其他事件重叠,我无法将事件放置在其他位置,也无法将其放置在其他位置,请参见控制台为什么不调试它?当您尝试打印到控制台时,新的结束日期为空。您正在尝试访问
console.log('new end date->',event.end.format())的format();
即使event.end为空。该函数也应该适用于您您您只需要找出如何将其与您的代码一起使用…@AlexMan尝试单独测试我的代码,您应该看到该函数可以工作您只需要在您的代码中正确实现它。。。