Hi am trying to get all my items between selected fromDate and selected ToDate datepicker,
When just getting the date for ex 2014-12-07 08:00 to 2014-12-07 09:00 I get my items between 8 and 17 but when trying to get fromDate -1 setDays and toDate +1 setDays, when i am trying to retrieve the items for selectedfromDate and selectedtoDate and add -1 and +1 it get alls items between the time 8 to 00:00 and not between 8-17 when just taking the the without adding -1 and +1
here is my code, does someone now why it gets like that ?
var fromTime;
var toTime; var listItemCustom; var listItemtoDate; var fromTimeConverted; var toTimeConverted; function checkFreebookingdateTime() {
getListCalender = document.getElementById('CalenderListDrop').value;
spHostUrl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
context = new SP.ClientContext.get_current();
parentContext = new SP.AppContextSite(context, spHostUrl);
web = parentContext.get_web();
list = web.get_lists().getByTitle(getListCalender);
context.load(list);
listItemCustom = document.getElementById('datepicker').value;
var listItemFromTime = document.getElementById('timepicker').value;
listItemtoDate = document.getElementById('datepickerto').value;
var listItemToTime = document.getElementById('timepickerTo').value;
var result = listItemCustom + "T" + listItemFromTime + ":00" + "Z";
var result2 = listItemtoDate + "T" + listItemToTime + ":00" + "Z";
fromTime = new Date(result);
var numberToAddbefore = -1;
fromTime.setDate(fromTime.getDate() + numberToAddbefore);
var fromDate08 = "T08:00:00Z";
fromTimeConverted = fromTime.toJSON().split('T')[0] + fromDate08;
toTime = new Date(result2);
var numberToAddafter = 1;
toTime.setDate(toTime.getDate() + numberToAddafter);
var toDate17 = "T17:00:00Z";
toTimeConverted = toTime.toJSON().split('T')[0] + toDate17;
var camlQuery = new SP.CamlQuery('<View><Query><Where><And><Geq><FieldRef Name=\'EventDate\' /><Value IncludeTimeValue=\'TRUE\' Type=\'DateTime\'>' + fromTimeConverted + '</Value></Geq><Leq><FieldRef Name=\'EndDate\' /><Value IncludeTimeValue=\'TRUE\' Type=\'DateTime\'>' + toTimeConverted + '</Value></Leq></And></Where></Query></View>');
camlQuery.set_viewXml();
collListItem = list.getItems(camlQuery);
context.load(collListItem);
context.executeQueryAsync(onQuerySucceeded, onQueryFailed);
}
function onQuerySucceeded() {
var dtstartCon = new Date(fromTimeConverted);
var dtEndCon = new Date(toTimeConverted);
var convertUtctoFromtime = new Date(dtstartCon.getTime() + dtstartCon.getTimezoneOffset() * 60 * 1000);
var start = new Date(convertUtctoFromtime);
var convertUtcToTime = new Date(dtEndCon.getTime() + dtEndCon.getTimezoneOffset() * 60 * 1000);
var end = new Date(convertUtcToTime);
var listItemEnumerator = collListItem.getEnumerator();
var bookedTimes= [];
var bookedFreeTimes = [];
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
var eventDate = new Date(oListItem.get_item('EventDate'));
var endDate = new Date(oListItem.get_item('EndDate'));
bookedTimes.push([eventDate, endDate]);
}
while (start.getTime() < end.getTime()) {
var timeFree = true;
var firstnewDate = (start.setTime(start.getTime()));
var firstNewDt = new Date(firstnewDate);
var newDate = start.setTime(start.getTime() + 30 * 60 * 1000);
start = new Date(newDate);
for (var i = 0; i < bookedTimes.length; i++) {
var date = bookedTimes[i][0];
var date2 = bookedTimes[i][1];
if (firstNewDt.getTime() != date.getTime() && start.getTime() != date2.getTime()) {
} else {
bookedTimes.splice(i, 1);
timeFree = false;
break;
}
}

0 commentaires:
Enregistrer un commentaire