Я заметил, что ваша переменная startDate
может быть в секундах , когда она должна быть миллисекундами , и, следовательно, иметь еще 3 цифры. Вот ваш код с небольшими изменениями, чтобы получить более точную дату начала:
var startDate = new Date().valueOf();
var intervalDate = moment(new Date(startDate)).add(30, 'minutes').toDate().valueOf()
Кодовая ссылка
Код, кажется, правильно добавляет 30 минут.