Я и оговорил, что как в вопросе. Хотя если не добавлять минуты, то и так будет. Чтобы с минутами было, нужно в сравнении time и timeEnd выкинуть двоеточие с помощью replace. А если нужно, чтобы в результате было по одной записи на день, то перед reduce добавить sort()
Aves: про сортировку я понял, но там вопрос в другом, что между 13.07.2015 8:00 и 13.07.2015 15:00 нет значений, то есть не учитываются дырки между часами, когда интервал больше часа
Для меня javascript - хобби, поэтому не уверен, что уровня хватит для чего-то крупного, думаю помочь смогу только в небольших конкретных задачах. Если подходит - то моя почта aves.v@yandex.ru