Я использовал Telerik и JQuery в течение многих лет. "Полнофункциональный" обычно приравнивается к тоннам чрезмерного увеличения размера, функции, в которых Вы не нуждаетесь и заключительная страница, которая тверда (или невозможна) оптимизировать. Отбросьте Telerik и используйте платформу без операционной системы как JQuery. Вы найдете, что это позволит Вам создавать определенную функциональность, в которой Вы нуждаетесь, и Вы никогда не будете возвращаться. Многие полнофункциональные комплекты UI как (как Telerik или ComponentArt) очень обольстительны, но я думаю, что они поощряют большое плохое программирование.
, Например.... У Вас должны действительно быть drag-and-drop-able столбцы на Вашей сетке? Вероятно, нет. Вероятно, лучше иметь область проектирования, где Ваши пользователи могут расположение их предпочтения столбца и затем основное представление, где сетка является мгновенной и легкой. Не представляйте ниже на мегабайты дополнительных функций, что Ваши пользователи никогда не будут (или редко) использование с каждым просмотром страницы.
Разделитесь на 9e5 миллисекунды (15 * 60 * 1000), вокруг, и умножьтесь назад 9e5:
const roundToQuarter = date => new Date(Math.round(date / 9e5) * 9e5)
console.log( roundToQuarter(new Date("1999-12-31T23:52:29.999Z")) ) // 1999-12-31T23:45:00
console.log( roundToQuarter(new Date("1999-12-31T23:52:30.000Z")) ) // 2000-01-01T00:00:00
console.log( roundToQuarter(new Date) )
Другой с датой-fns (не обязательный)
import {getMinutes, setMinutes, setSeconds, setMilliseconds} from 'date-fns'
let date = new Date();
let min = getMinutes(date);
let interval = 3 // in minutes
let new_min = min - min%interval + interval;
let new_date = setMilliseconds(setSeconds(setMinutes(date,new_min),0),0)
console.log('Orignal Date : ' + date);
console.log('Original Minute : ' + min);
console.log('New Minute : ' + new_min);
console.log('New Date : ' + new_date);