Для начала у вас какая-то не очень понятная для меня рекурсия в первом же предложении вопроса: "Приходит json в котором помимо прочего есть дата выступления участников. Нужно сравнить эту дату с датой в json". Какую с какой ?)
Потом я содержимое объектов не понял: что такое date и что такое dataRel и одна ли это и та же дата?
Но в целом это не важно, дальше все будет просто.
Каюсь, лень изобретать готовое решение, но если вас устроит наметка, то она такая:
Даты можно переводить в timestamp, как-то сходу у меня это получается не очень корректно (при переводе спарсенной строки обратно в дату, время отстает на час), но чую проблема в привязке в GMT, это решаемо. А уже таймстемпы сравниваются как обычные числа, не вижу далее никаких сложностей.
Например, так:
a = new Date(Date.parse('Wednesday, November 04, 2015' + ' 13:30'))
b = new Date(Date.parse('Wednesday, November 04, 2015' + ' 11:30'))
if (a > b) {
// что-нибудь натворим тут
}
А раз вы говорите, что можете корректировать json, то пихните туда еще собственно timestamp, тогда вообще алгоритм будет прозрачный.
Если вам никто не ответит до завтра, то с утра натворю полноценное решение на основе имеющейся информации.