SharePoint / Javascript:在javascript中比较日历日期时间

时间:2014-03-05 14:49:53

标签: javascript date sharepoint sharepoint-2010 comparison

我正在尝试找到使用Javascript比较日期/时间的最佳方法,以防止在SharePoint日历上进行双重预订。所以我加载一个包含每个事件的项目的数组,包括它们的开始日期/时间和结束日期/时间。我想将开始日期/时间和结束日期/时间与对象中的开始/结束日期/时间进行比较,但我不确定如何确保日期不会失效。

像:

//date that is created from user controls
var startDate = new Date(startDat + 'T' + startHour + ':' + startMin + ':00');
var endDate = new Date(endDat+ 'T' + endHour+ ':' + endMin+ ':00');
for ( var i = 0; i < allEvents.length; i++ ) {
   var thisEvent = allevents[i];
   //having trouble with the compare

   //i have tried silly ifs like
   if (thisEvent.startDate >= startDate && thisEvent.endDate <= endDate) { 
      // this seems like I am going down the wrong path for sure
   }
}

然后我尝试将加载的对象拆分为日期的每个组件的单独值(int)

var thisObj = { startMonth: returnMonth(startDate), startDay: returnDay(startDate), etc

但我不确定这不仅仅是另一种愚蠢的做法,而且还有另一种更有意义,因为我只是在学习它。

1 个答案:

答案 0 :(得分:1)

我有类似的要求,但选择在预订阶段使用jQuery / SPServices解决。

代码仍处于构建状态(即未完成),但该方法可能有所帮助。

我将一个事件处理程序附加到一个列,然后选择,将同一列表中预订的所有日期提取到一个数组,然后在滚动的12个月cal上显示该数组,如下所示。

enter image description here

我没有检查以确保新的预订不会重叠,但在Pre-Save上快速浏览阵列会为我提供严格的Go / No Go选项。虽然依赖于客户端JS,因此无法在数据表或Web服务上下文中工作。